Linux下 Vim(Vi)编辑器的使用
vi编辑器
vi是UNIX和类UNIX环境下的可用于创建文件的屏幕编辑器。vi有两种工作模式:命令模式和文本输入模式。启动vi需要输入vi,按[Spacebar]键并输入文件名后回车。
切换模式键
vi从命令模式切换到文本输入模式。每个键以不同方式使vi进入文本输入模式。按[ESC]键使vi从文本输入模式回到命令模式。
表1列出了vi从命令模式切换到文本输入模式的命令键及其功能。
表1 切换到文本输入模式的命令键
键 |
功能 |
i |
在光标左侧输入正文 |
I |
在光标所在行的行首输入正文 |
a |
在光标右侧输入正文 |
A |
在光标所在行的行尾输入正文 |
o |
在光标所在行的下一行增添新行,光标位于新行的行首 |
O |
在光标所在行的上一行增添新行,光标位于新行的行首 |
说明:1. 光标的位置由双下划线(═)标明。
2. 当前行指光标所在的那一行。
退出命令
只有一种方式进入vi,但是有几种方式退出vi,退出方式的选择取决于如何处理编辑后的文件。
除了ZZ命令外,这些命令都以:开始,用[Return]结束命令行。表2列出了vi编辑器的退出命令及其功能。
表2 vi编辑器的退出命令
键 |
功能 |
:wq |
保存文件,退出vi编辑器 |
:w |
保存文件,但不退出vi编辑器 |
:q |
退出vi编辑器 |
:q! |
不保存文件,退出vi编辑器 |
ZZ |
保存文件,退出vi编辑器 |
文本修改键
这些键只适用于命令模式。表3列出了vi编辑器的退出命令及其功能。
表3 命令模式下vi编辑器的文本修改键
键 |
功能 |
x |
删除光标位置指定的字符 |
dd |
删除光标所在的行 |
u |
撤销最近的修改 |
U |
撤销对当前行上做的所有修改 |
r |
替换光标位置上的一个字符 |
R |
替换从光标位置开始的字符,同时改变vi到文本输入模式 |
.(点) |
重复上一次的修改 |
光标移动指令
在命令模式下,这些键可以在文档中移动光标。表4列出了vi编辑器的退出命令及其功能。
表4 vi的光标移动键
键 |
功能 |
h或[ ] |
将光标向左移动一格 |
j或[ ] |
将光标向下移动一格 |
k或[ ] |
将光标向上移动一格 |
l或[ ] |
将光标向右移动一格 |
$ |
将光标移到当前行的行尾 |
w |
将光标向右移一个字 |
b |
将光标向左移一个字 |
e |
将光标移到字尾 |
0(零) |
将光标移到当前行的行首 |
[Return]键 |
将光标移到下一行的行首 |
[Spacebar]键 |
将光标向右移动一位 |
[Backspace]键 |
将光标向左移动一位 |
注意:在文本输入模式下避免使用光标键(箭头键)。因为在某些系统中,光标键被解释为普通的ASCII 字符。如果在文本输入模式下使用光标键,那么对应的ASCII字符将被插入文件中。
剪切和粘贴键
这些键用来重新安排用户文件中的文本,在vi的命令模式下可用。表5列出了vi编辑器的剪切和粘贴键及其功能。
表5 vi编辑器的剪切和粘贴键
键 |
功能 |
d |
删除指定位置的文本,并存到临时的缓冲区中。可以使用put操作符(p或P键)访问这个缓冲区 |
y |
将指定位置的文本复制到临时缓冲区。可以使用put操作符访问这个缓冲区 |
P |
将指定缓冲区的内容放到当前光标的位置之上 |
p |
将指定缓冲区的内容放到当前光标的位置之下 |
翻页键
翻页键用来大块滚动用户的文件,在vi的命令模式下可用。表6列出了vi编辑器的翻页键及其功能。
表 6 vi编辑器的翻页键
键 |
功能 |
[Ctrl-d] |
将光标向下移到文件尾,通常每次移动12行 |
[Ctrl-u] |
将光标向上移到文件头,通常每次移动12行 |
[Ctrl-f] |
将光标向下移到文件尾,通常每次移动24行 |
[Ctrl-b] |
将光标向上移到文件头,通常每次移动24行 |
Linux下 Vim(Vi)编辑器的使用的更多相关文章
- Linux下的vi编辑器与gcc工具的使用
最近在网上找了些视频,自学了一点Linux环境下,C编程的方法. 注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的. vi编辑器有3种模式,命令行模式,插入模式,底行模式. 如果 ...
- linux下Vim文本编辑器的常用快捷键
Linux插入命令 a 在光标之后插入字符 A 把光标移动到行首尾进入插入模式 i 在光标之前插入字符 I 把光标移动到行首并进入插入模式 o 在光标下插入新行 O 在光标上插入新行 Linux定位 ...
- Linux下采用VI编辑器删除复制或移动多行文本内容
一.删除多行 单行删除,:1(待删除行号)d 多行删除,:1,10d dd 删除光标所在行ndd删除以当前行开始的n行dw删除以当前字符开始的一个字符ndw删除以当前字符开始的n个字符d$.D删除以当 ...
- linux下vim编辑器使用
VIM - Vi IMproved: vim是vi编辑器的升级版,是linux下标准的编辑器,具有程序编写能力,可以根据字体颜色辨别语法的正确性,方便程序的设计. 使用: # vim [OPTION] ...
- linux 下vim的使用
vi与vim vi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对 ...
- linux下使用vi操作
ESC : 进入命令模式 linux下使用vi后,怎样跳转到文件结尾 pagedown键连续按 虽然我也这么用,但还是太笨了.问了高手,方法是按shift+g,另外,到文件开头是gg. linux ...
- linux 下vim的使用(必看)
vi与vimvi编辑器是所有Unix及Linux系统下标准的编辑器,他就相当于windows系统中的记事本一样,它的强大不逊色于任何最新的文本编辑器.他是我们使用Linux系统不能缺少的工具.由于对U ...
- windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号
一般情况下,windows下编辑过的文件在Linux下用vi打开行尾会多出一个^M符号,如下图: 这是因为Windows等操作系统用的文本换行符和UNIX/Linux操作系统用的不同,Windows系 ...
- Linux下vim文件未正常退出,修复文件
Linux下vim文件未正常退出,会产生一个 .文件名.swp的文件 ls -al ,rm 删掉.swp文件 之后就可以正常使用文件了
随机推荐
- JS精度问题(0.1+0.2 = 0.3吗?)
一.引出问题 0.1+0.2 = 0.3吗?在JS中是这样的吗?我们写个测试代码不就知道了吗? 结果出人意料,并不像我们所想象的那样.那么这到底是为什么呢? 二.原因分析 JS浮点数存储机制: 三.解 ...
- 通配符的匹配很全面, 但无法找到元素 'context:property-placeholder' 的声明。
在Spring相应包导入正确的前提下,出现这个异常,是因为我们在引入命名空间的时候,没有正确引入它的DTD解析文件,以上面的context为例,解决办法如下: 在引入 xmlns:context=&q ...
- 使用mongodb的一些笔记
show dbs # 从结果中发现有cmb_demo_23_hackeruse cmb_demo_23_hacker db.all_in_one.find({"_id":15480 ...
- 关于Python2 与 Python3 的区别
Python是一门动态解释性的强类型定义语言. 1.Python2 : ①.臃肿,源代码的重复量很多. ②.语法不清晰,掺杂着C,php,Java的一些陋习. Python3 : 几乎是重构后的源 ...
- linux报错-bash: xhost: command not found
本帖转自倔强小梦https://www.cnblogs.com/xphdbky/p/8243008.html 倔强小梦参考自:http://blog.csdn.net/csdnones/article ...
- Oracle (分类、数据库类型、序列)
分类: 1.DDL (定义语句) create .alter .drop 不需要commit create table aaa( tt1 varchart ) 2. DML (操纵语句) lnset ...
- 浅谈C++ STL
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量.链表.队列.栈. C++ 标准模板库的核心包括以 ...
- [BlueZ] 1、Download install and use the BlueZ and hcitool on PI 3B+
星期日, 02. 九月 2018 11:58下午 - beautifulzzzz 1. Introduction Bluez is the default Bluetooth protocol sta ...
- 【开源项目】电视盒子好用又强大的APP: TVRemoteIME
TVRemoteIME 电视盒子的远程输入法应用,可跨屏远程输入.跨屏远程控制盒子.远程文件管理.HTTP/RTMP/MMS网络视频直播.ED2K/种子文件的视频文件边下边播 应用的诞生 自从家里有电 ...
- 【RL-TCPnet网络教程】第27章 DNS域名系统基础知识
第27章 DNS域名系统基础知识 本章节为大家讲解DNS(Domain Name System,域名系统),通过前面章节对TCP和UDP的学习,需要大家对DNS也有个基础的认识. (本章的知 ...