这是一篇Vim指令指令的备忘录,帮助自己梳理指令、强化记忆,并方便以后查找。
小技巧:
1、善于使用重复因子:重复因子是出现在命令之前的数字,表示某个指令重复执行的次数。比如3w表示向前移动三个单词,10k表示将光标往上移动十行等。
2、注意备份个性化配置文件:Linux系统中,个性化配置文件默认为用户主目录下的.vimrc文件。下面是我喜欢的默认配置:
set tabstop=4
set shiftwidth=4
set expandtab
set ai
set nu
移动篇:
1、光标基本移动:
h,光标向左移1个字符。支持重复因子。向左方向键也能完成此功能。
l,光标向右移1个字符。空格键和向右方向键也能完成此功能。
j,光标向下移1行。向下方向键也能完成此功能。
k,光标向上移1行。向上方向键也能完成此功能。
2、词移动:
w,光标向后文移动一个词,并停在下个单词的词首位置。3w表示向前移动3个词。
b,光标向前文移动一个词,并停在上个单词的词首位置。
e,光标向后文移动一个词,并停在下个单词的词尾位置。
ge,光标向前文移动一个词,并停在上个单词的词尾位置。
W、B、E分别表示w、b、e相同功能的忽略符号版,区别是:大写版指令在移动时,将特殊符号(包括标点符号、@、#等)和紧邻的单词算作一个单词,即只以空格来划分单词。而小写版,移动时,将特殊符号也算作一个独立的单词(注意紧邻的多个特殊符号,只算一个单词)。
3、 行移动:
^,移动到当前行第一个非空字符,这个指令要比0更常用。不支持重复因子。
0,移动到行首,<End>键也可以完成相同功能。不支持重复因子。
$,移动到行尾,<Home>键也可以完成相同功能。支持重复因子:2$,表示移动到下一行的行尾。
G,移动到全文最后一行。不支持重复因子。100%也可以完成相同功能。
nG,移动到全文的第n行。
1G,移动到全文第一行。但我更习惯用gg指令来定位到首行。
n%,移动到全文第百分之n行处,50%移动到全文中间行,90%移动到差不多结尾的位置。
H、M、L,分别表示移动到视野之内的首行(Home)、中间行(Middle)、末尾行(Last)。
4、滚屏移动:
CTRL-d:把视窗向下滚半屏,所以可以看见更靠近文档尾部的行。CTRL-f,为把视窗向下滚1屏
CTRL-u:把视窗向上滚半屏。CTRL-b,为把视窗向上滚1屏
CTRL-e:把视窗向下滚一行。
CTRL-y:把视窗向上滚一行。
zt: 将光标所在行移动到屏幕的顶部。
zz: 将光标所在行移动到屏幕的中间。
zb: 将光标所在行移动到屏幕的底间。