VIM备忘录【部分转】【持续更新】
光标移动
左:h
下:j
上:k
右:l
下一行行首:+
上一行行首:-
当前行行首:0
当前行行尾:$
后一个单词词首:w,W
后一个单词词尾:e,E
前一个单词词首:b,B
下一屏:CRTL+F
上一屏:CRTL+B
下半屏:CRTL+D
上半屏:CRTL+U
文件尾:G
当前屏幕首行:H
当前屏幕末行:L
当前屏幕中央:M
指定行:行号G,:行号
指定字符串前:/字符串,?字符串
当前行指定字符前:f字符,F字符
文字追加和插入
当前光标右方追加:a
当前光标行尾追加:A
当前光标左方追加:i
当前光标行首追加:I
当前行下方追加行:o
当前行上方插入行:O
文字删除
删除光标位置文字:x
删除光标左方文字:X
删除当前行:dd
删除光标移动范围内的文字:d光标移动命令
文字替换
替换1文字到多文字:s
替换1文字到1文字:r
替换到当前行尾:C
替换当前行:cc
从当前位置开始替换直到输入ESC:R
文字复制和粘贴
(例)
复制光标以下3行:3yy,3Y
复制光标以后6个单词:6yw
粘贴到光标以下:p
粘贴到光标以上:P
指令模式下的复制粘贴类命令通常需要配合一般模式下的有关快捷操作一起使用方能达到效果,所以这里的复制粘贴命令也不单独局限于指令模式。
常用的复制粘贴方法如下:
1、复制指定行进行粘贴:
在一般模式下将光标移动到指定行,按下 yy,完成拷贝,再将光标移动到要粘贴的前一行,按 p 进行粘贴。
2、复制指定区域进行粘贴:
在一般模式下将光标移动到复制区域的开始位置,按下 v,进入可视模式,用 hjkl 或者方向键移动光标来选定区域,完成选定后按 y 完成拷贝,再将光标移动到粘贴位置,按 p 进行粘贴。
3、复制指定单词进行粘贴:
在一般模式下将光标移动到指定单词第一字母位置,按下 yw,完成拷贝,再将光标移动到要粘贴的位置,按 p 进行粘贴。
4、结合标记命令完成复制粘贴:
在一般模式下将光标移动到拷贝开始行,按 ma 做下标记 a;光标移动到拷贝结束行,按 mb 做下标记 b;再将光标移动到要粘贴的前一行,按 mc 做下标记 c;最后在命令模式下输入“’a,’b copy ‘c”,按回车完成粘贴。如果将 copy 换成 move,则完成剪切操作。
5、复制多行进行粘贴:
在一般模式下将光标移动到起始行,按 nyy 拷贝 n 行,再将光标移动到要粘贴的前一行,按 p 进行粘贴。
6、通过行数指定范围跟目的位置来完成复制粘贴:
在命令模式下输入“n1,n2 copy n3”,按回车,则将第 n1 行到 n2 行复制到了第 n3 行。如果将 copy 换成 move,则完成剪切操作。
7、使用非默认缓冲区完成复制粘贴:
前面的复制粘贴方法都是使用的默认缓冲区, 编辑器除了默认缓冲区外,还有由 a、b、c … z 为代号的26个独立缓冲区,所以 Vim 编辑器中最多可以同是保存27份拷贝。使用非默认缓冲区完成复制粘贴操作时只需要加上双引号跟缓冲区代号即可。见下一实例。
8、将指定行拷贝到 x 缓冲区并完成粘贴:
在一般模式下将光标移动到指定行,按下 “xyy,拷贝到 x 缓冲区,再将光标移动到要粘贴的前一行,按 “xp 进行粘贴。
通用替换命令
:行1,行2s/字符串1/字符串2/g
“行1,行2”指定方法例:
第5行到第30行:5,30
当前行到第30行:.,30
第5行到第末尾行:5,$
第5行到含有end的行:5,/end/
所有行:%
其他常用命令
显示行号
:set number 或者 :set nu
隐藏行号
:set nonumber 或者 :set nonu
自动缩进
:set autoindent 或者 :set ai
不自动缩进
:set noautoindent 或者 :set noai
显示Tab及行尾字符
:set list
隐藏Tab及行尾字符
:set nolist
设置Tab宽度为4个字符
:set tabstop=4
查看当前设置
:set all