VIM是linux中功能强大的文本编辑工具,因为功能强大,所以各种参数快捷键也很复杂,为方便记忆,特整理如下:

vim命令基本格式与参数

vim [OPTION] FILE
常见参数:
+# :打开文件后,让光标处于第#行,(+ 默认为行尾)。
+/PATTERN :打开文件后,让光标处于第一个被PATTERN匹配到的行的行首。
-b file :以二进制方式打开文件。
-d file1/file2 :比较多个文件的不同。
-m file :以只读方式打开文件。
-e file 或 ex file :直接进入ex模式(扩展命令模式或叫做末行模式)。

vim的几种工作模式

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 : 删除当前行后的换行符;

替换命令

r : 替换光标所在处的字符(只能替换一个字符);
R: 切换为REPLACE模式,可持续替换多个字符。 

删除命令

d : 删除命令(可结合光标跳转字符,实现范围删除);
d$:  从光标所在处,删除到行尾;
d^:  从光标所在处,删除到非空行首;
d0:  从光标所在处,删除到行首;
dw:  从光标所在处,删除到下一个单词的词首;
de:  从光标所在处,删除到下一个单词的词尾;
db:  从光标所在处,删除到前一个单词的词首;
dd:  删除光标所在的行;
#dd:多行删除;
D : 从当前光标位置一直删除到行尾,等同于d$。

改变命令

c : 改变命令(与d命令类似,执行删除后进入插入模式);
c$:  从光标所在处,删除到行尾,并进入插入模式;
c^:  从光标所在处,删除到非空行首,并进入插入模式;
c0:  从光标所在处,删除到行首,并进入插入模式;
cw:  从光标所在处,删除到下一个单词的词首,并进入插入模式;
ce:  从光标所在处,删除到下一个单词的词尾,并进入插入模式;
cb:  从光标所在处,删除到前一个单词的词首,并进入插入模式;
cc:  删除光标所在的行,并进入插入模式;
#cc:多行删除,并进入插入模式;
C : 从当前光标位置一直删除到行尾,并进入插入模式,等同于c$。

复制命令

y : 复制(yank)命令(可结合光标跳转字符,实现范围复制);
y$:  从光标所在处,复制到行尾;
y^:  从光标所在处,复制到非空行首;
y0:  从光标所在处,复制到行首;
yw:  从光标所在处,复制到下一个单词的词首;
ye:  从光标所在处,复制到下一个单词的词尾;
yb:  从光标所在处,复制到前一个单词的词首;
yy:  复制光标所在的行;
#yy:多行复制; 
Y : 从当前光标位置一直复制到行尾,等同于y$。
命令模式下常用用法汇总 效果
#ihello[ESC] 插入“hello”#次
0y$ 复制本行
gU 变为大写
gu 变为小写
di” 当光标在” “之间时,则删除” “的内容
yi( 当光标在( )之间时,则复制( )的内容
vi[ 当光标在[ ]之间时,则选中[ ]的内容
dtx 删除字符直到遇到光标之后的第一个x字符
ytx 复制字符直到遇到光标之后的第一个x字符

撤销更改命令

u : 撤销命令(可撤销最近的更改);
#u: 撤销多次之前的更改; 
U : 撤销光标落在这行后的所有此行的修改。
Ctrl+r:重做最后的撤销,取消撤销。
. : 重复前一个操作。
#.: 重复前一个操作#次。

vim寄存器
vim标记和宏
扩展命令模式下地址定界
扩展命令模式下查找
扩展命令模式模式下查找替换

调整文本颜色

Ctrl+v[[031mCOLORCtrl+v[[0m    输出红色COLOR

取消高亮显示

set nohlsearch    取消搜索后的高亮显示

使用多个窗口
可视化模式
编辑二进制文件
定制vim工作特性


一个低调的男人