VIM是linux中功能强大的文本编辑工具,因为功能强大,所以各种参数快捷键也很复杂,为方便记忆,特整理如下:
vim命令基本格式与参数
vim [OPTION] FILE
常见参数:
+# :打开文件后,让光标处于第#行,(+ 默认为行尾)。
+/PATTERN :打开文件后,让光标处于第一个被PATTERN匹配到的行的行首。
-b file :以二进制方式打开文件。
-d file1/file2 :比较多个文件的不同。
-m file :以只读方式打开文件。
-e file 或 ex file :直接进入ex模式(扩展命令模式或叫做末行模式)。
vim的几种工作模式

command模式下的光标跳转:
字符间跳转:h 左;j下;k 上;l 右。
#command 可以执行#次命令。
单词间跳转:w:下一个单词的词首;
e:当前或下一个单词的词尾。
b:当前或前一个单词的词首。
#command 可以执行#次命令。
当前页跳转:H:跳转至页首。
M:跳转至页中间行。
L:跳转至页底。
zt:将光别所在行移到屏幕顶端;
zz:将光标所在行移到屏幕中间;
zb:将光标所在行移到屏幕低端。
行首行尾跳转:^:跳转至行首的第一个非空的字符;
0:跳转至行首;
$:跳转至行尾。
行间移动:#G :移动至第#行行首。(相当于扩展命令模式下 #)
G :移至最后一行行首。
1G 或gg:移至第一行行首。
句间移动 : ) : 下一句;
( : 上一句。
段间移动 : } : 下一段;
{ : 上一段。
翻屏操作:Ctrl+f 向文件尾部翻一屏(向前翻屏);
Ctrl+b 向文件首部翻一屏(向后翻屏);
Ctrl+d 向文件尾部翻半屏(向下翻屏);
Ctrl+u 向文件尾部翻半屏(向上翻屏);
command模式下的字符编辑:
x : 删除(可认为是剪切,并非真的删除)光标处的字符;
#x:删除光标处起始的#个字符;
p :在光标所在处的后面插入储存的字符;
xp:交换光标所在处的字符及后面字符的位置;
~ : 转换大小写;
J : 删除当前行后的换行符;
替换命令
1 2
| r : 替换光标所在处的字符(只能替换一个字符); R: 切换为REPLACE模式,可持续替换多个字符。
|
删除命令
1 2 3 4 5 6 7 8 9 10
| d : 删除命令(可结合光标跳转字符,实现范围删除); d$: 从光标所在处,删除到行尾; d^: 从光标所在处,删除到非空行首; d0: 从光标所在处,删除到行首; dw: 从光标所在处,删除到下一个单词的词首; de: 从光标所在处,删除到下一个单词的词尾; db: 从光标所在处,删除到前一个单词的词首; dd: 删除光标所在的行;
D : 从当前光标位置一直删除到行尾,等同于d$。
|
改变命令
1 2 3 4 5 6 7 8 9 10
| c : 改变命令(与d命令类似,执行删除后进入插入模式); c$: 从光标所在处,删除到行尾,并进入插入模式; c^: 从光标所在处,删除到非空行首,并进入插入模式; c0: 从光标所在处,删除到行首,并进入插入模式; cw: 从光标所在处,删除到下一个单词的词首,并进入插入模式; ce: 从光标所在处,删除到下一个单词的词尾,并进入插入模式; cb: 从光标所在处,删除到前一个单词的词首,并进入插入模式; cc: 删除光标所在的行,并进入插入模式;
C : 从当前光标位置一直删除到行尾,并进入插入模式,等同于c$。
|
复制命令
1 2 3 4 5 6 7 8 9 10
| y : 复制(yank)命令(可结合光标跳转字符,实现范围复制); y$: 从光标所在处,复制到行尾; y^: 从光标所在处,复制到非空行首; y0: 从光标所在处,复制到行首; yw: 从光标所在处,复制到下一个单词的词首; ye: 从光标所在处,复制到下一个单词的词尾; yb: 从光标所在处,复制到前一个单词的词首; yy: 复制光标所在的行;
Y : 从当前光标位置一直复制到行尾,等同于y$。
|
命令模式下常用用法汇总 |
效果 |
#ihello[ESC] |
插入“hello”#次 |
0y$ |
复制本行 |
gU |
变为大写 |
gu |
变为小写 |
di” |
当光标在” “之间时,则删除” “的内容 |
yi( |
当光标在( )之间时,则复制( )的内容 |
vi[ |
当光标在[ ]之间时,则选中[ ]的内容 |
dtx |
删除字符直到遇到光标之后的第一个x字符 |
ytx |
复制字符直到遇到光标之后的第一个x字符 |
撤销更改命令
1 2 3 4 5 6
| u : 撤销命令(可撤销最近的更改);
U : 撤销光标落在这行后的所有此行的修改。 Ctrl+r:重做最后的撤销,取消撤销。 . : 重复前一个操作。
|





调整文本颜色
1
| Ctrl+v[[031mCOLORCtrl+v[[0m 输出红色COLOR
|
取消高亮显示
1
| set nohlsearch 取消搜索后的高亮显示
|



