- 移动、跳转
h、j、k、l:分别对应左、下、上、右。按键盘分布,从左到右,逆时针。
w:移动到下一个词的行首。
W:同样移动到下一个词行首。两者区别:root/usr bin,光标在r处,w移动到/处,W移动到b。
b:和w作用相反,前移。
B:和W作用相反,前移。两者区别:同上w和W。
e:移动到下一个词的行尾。
E:同样移动到下一个词的行尾。两者区别:同上w和W。
ge:和e作用相反,前移。
gE:和E作用相反,前移。两者区别:同上w和W。
$:移动到行尾。
^:移动到当前行第一个非空白字符上。
0(数字0):移动行首。
f:单字符搜索。fx,搜索x字符,“;”与f方向一致的字符x。“,”与“;”与f方向相反,移动到前一个字符x。
F:向左方向搜索。“;“:和F方向一致,左移下一个。”,“:和F方向相反,右移下一个。
t:和f功能类似,区别t光标停留在搜索字符的前一个字符上。
T:反方向搜索。
注:以上命令(^和0除外)都支持"数值-命令"形式。2w。
%:匹配括号、花括号、方括号。
H:屏幕显示内容顶部。home。
M:屏幕显示内容的中部。middle。
L:屏幕显示内容的底部。last。
gg:跳转到第一行。
G:跳转到最后一行。
``:table键上面那个,返回跳转之前位置。再按,回到原位置。例:处于1,100g,输入``,回到1,再按回到100.
:marks:命令显示如下
:进行此次跳转之前的起跳点 ``:上次编辑该文件时光标最后停留的位置 [:最后一次修改的起始位置 ]:最后一次修改的结束位置 自定义标记:m+[a-z],例:在10行定义ma,跳到100,输入“
a”,跳转到10。
ctrl+o(字母):往前跳转。例:在1,20gg,50gg,ctrl+o回到20,再按回到1.
ctrl+i:和上面效果相反。
数字%:百分比跳转。
- 滚屏
ctrl-u:文本向下滚到半屏。光标不随文本移动。相当于文本的窗口上移半屏。
ctrl-d:窗口向下移动半屏,相当于文本向上滚动了半屏。
ctrl-e:向上滚动一行。
ctrl-y:向下滚动一行。
ctrl-f:向前滚动一屏。forward
ctrl-b:向后滚动一屏。backward
zt:把当前行置于屏幕顶端。
zb:把当前行置于屏幕底。
zz:把当前行置于屏幕中央。 - 搜索、修改
/+word:搜索word,n跳到下一个,N反向跳。如有.*[]^%/?~$等字符,加反斜杠。
/+word>:只匹配以word结尾的词。
/+<word:只匹配以word开头的词。都用就是严格匹配。
/+ word$(^):只匹配处于行尾(行首)的word。
/+w.d:匹配任何前一个字符为w后一个字符是d的词。
*:光标定位于这个word 上,然后按下"*"键。Vim会取当前光标所在的word 并以它为目标字符串进行搜索。#反向搜索。(有时某个词特别长,可以此方法。/+word有可能word拼错)
g*:用"g*"和"g#"命令来同时匹配那些包含在其它word 中的字串。
:set hlsearch(nohlsearch):高亮搜索结果(取消高亮)。
dd:删除整行。
cc:删除整行并编辑。
"*yy:复制内容到剪贴板。在其他地方可以使用Windows的ctrl+c粘贴。(":双引号)
"*p:可以将Windows中复制的粘贴到vim模式中。
x:代表dl(删除当前光标下的字符)
X:代表dh(删除当前光标左边的字符)
D:代表d$(删除到行尾的内容)
C:代表c$(修改到行尾的内容)
s:代表cl(修改一个字符)
S:代表cc(修改一整行)
To be continued。不定期更新~