1、字符粒度的移动
快捷键 | 助记 | 作用 | |
---|---|---|---|
h | 向左移动一个字符 | ||
l | 向右移动一个字符 | ||
`n | ` | 移动到文本行的第n列 | |
fX | find | 移动到光标后面的下一个字符X(X可以是任何字符) | |
FX | Find | 移动到光标前面的上一个字符X(X可以是任何字符)(f、F会将光标定位在字符X上) | |
tX | till | 移动到光标后面的下一个字符X(X可以是任何字符) | |
TX | Till | 移动到光标前面的上一个字符X(X可以是任何字符)(和上面的f、F类似,区别就是光标定位在X字符之前) |
2、单词粒度的移动
快捷键 | 助记 | 作用 |
---|---|---|
w | word | 下一个单词 |
W | word | 同上,会忽略一些标点符号 |
b | backward | 上一个单词 |
B | backward | 同上,会忽略一些标点符号 |
e | end | 移动到单词的末尾 |
E | End | 同上,但是会忽略一写标点符号 |
n | next | 移动到下一次搜索匹配的位置(next matching search pattern) |
N | Next | 移动到上一次搜索匹配的位置(previous matching search pattern) |
* | 移动到下一次出现光标下单词的位置(next whole word under cursor) | |
# | 移动到上一次出现光标下单词的位置(previous whole word under cursor) | |
g* | next matching search (not whole word) pattern under cursor | |
g# | previous matching search (not whole word) pattern under cursor(g*、g#和*、#的区别在于,不但会找到匹配的整个单词,也会找出该单词是其他单词子串的匹配情况。比如查找ear时learn也会被找出。) |
3、基于行的移动
快捷键 | 助记 | 作用 |
---|---|---|
j | 向下移动一文本行 | |
k | 向上移动一文本行 | |
gj | 向下移动一屏幕行 | |
gk | 向上移动一屏幕行 | |
0 | 移动到文本行的开头 | |
$ | 移动到文本行的末尾 | |
^ | 移动到文本行的第一个非空白字符 | |
_ |
移动到文本行的第一个非空白字符(move to first non-blank character of the line) | |
g_ |
移动到文本行的最后一个非空白字符(move to last non-blank character of the line) | |
gg | 移动到第一行 | |
G | 移动到最后一行 | |
nG | 或者是 ngg 移动到第n行 | |
:n | 移动到第n行 | |
nH | High | 移动到屏幕顶端往下的第n行 |
nL | Low | 移动到屏幕底端往上的第n行 |
4、 基于锚点的移动
快捷键 | 助记 | 作用 |
---|---|---|
o | 在选中区域的两端交替移动光标 | |
% | 在括号两端交替移动(会先找到在同一行的括号,然后,在括号的两端交替移动)(jump to matching bracket {}, [], ()) | |
) | 移至下一个句子(sentence)首。(Jump forward one sentence.) | |
( | 移至上一个句子(sentence)首。sentence(句子)是以.!?为分隔。(Jump backward one sentence.) | |
} | 移至下一个段落(paragraph)首。(Jump forward one paragraph.) | |
{ | 移至上一个段落(paragraph)首。paragraph(段落)是以空白行为分隔。(Jump backward one paragraph.) | |
m{a-zA-Z} | mark | 用m{a-zA-Z}标记该位置 |
`{a-zA-Z} | 光标移动到之前用{a-zA-Z}标记的位置 | |
'{a-zA-Z} | 光标移动到之前用{a-zA-Z}标记的位置所在行的行首 | |
'{a-zA-Z} | 光标移动到之前用{a-zA-Z}标记的位置所在行的行首 | |
'{a-zA-Z} | 光标移动到之前用{a-zA-Z}标记的位置所在行的行首 | |
'{a-zA-Z} | 光标移动到之前用{a-zA-Z}标记的位置所在行的行首 | |
'{a-zA-Z} | 光标移动到之前用{a-zA-Z}标记的位置所在行的行首 |
5、基于屏幕的移动
快捷键 | 助记 | 作用 |
---|---|---|
Ctrl+u | up | 向上半屏 |
Ctrl+d | down | 向下半屏 |
Ctrl+b | backward | 向上一屏 |
Ctrl+f | forward | 向下一屏 |
H | High | 移动光标到屏幕顶端(move to top of screen) |
M | Middle | 移动光标到屏幕中央(move to middle of screen) |
L | Low | 移动光标到屏幕底端(move to bottom of screen) |
6、基于历史的移动
快捷键 | 助记 | 作用 |
---|---|---|
Ctrl+o | older | 光标回到之前的位置(jump to last (older) cursor position) |
Ctrl+i | 光标回到之后的位置(之前有ctrl+o操作)(jump to next cursor position (after Ctrl+o)) | |
; | 重复上次的f、t、F和T移动操作(以相同的方向) | |
, | 重复上次的f、t、F和T移动操作(以相反的方向) | |
`` | 移动到上次光标所在的位置(多次的效果就是在最近的光标位置之间交替移动)(Return to the cursor position before the latest jump (undo the jump).) | |
'' | 移动到之前光标位置所在的行(Return to the line where the cursor was before the latest jump.) | |
'. | 移动到上次修改的行(Jump to the last-changed line.) | |
gv | visual | 移动到上次选中的位置,并选中上次选中的内容 |
7、光标所在的位置不变,改变文本相对屏幕的位置
快捷键 | 助记 | 作用 |
---|---|---|
zz | 将光标所在的行移动到屏幕中央 | |
Ctrl+y | 光标位置不变,屏幕内容向下移动一行(move view pane up) | |
Ctrl+e | 光标位置不变,屏幕内容向上移动一行(move view pane down) | |
zh | move the view on text to left for 1 character(如果设置了nowrap,并且文本行超出屏幕) | |
zl | move the view on text to right for 1 character(如果设置了nowrap,并且文本行超出屏幕) | |
z. | 将光标所在行移动到屏幕中间(scroll the line with the cursor to the center of the screen) | |
zt | top | 将光标所在行移动到屏幕顶端(scroll the line with the cursor to the top) |
z<Enter> | 将光标所在行移动到屏幕顶端 | |
z- | 将光标所在行移动到屏幕底端 | |
zb | bottom | 将光标所在行移动到屏幕底端(scroll the line with the cursor to the bottom) |
8、其他快捷键
快捷键 | 助记 | 作用 |
---|---|---|
Ctrl+g | 显示当前行的信息 |