Vim快捷键(二):光标移动
📘 基本移动
以下移动都是在正常模式下的操作
快捷键 | 作用 |
---|---|
h 、l 、j 、k | 左、右、下、上移一个字符 |
gj 、gk | 移动到一段内的下、上一行 |
+ 或Enter | 光标移动到下一行第一个第一个非空字符 |
- | 光标移动到上一行第一个第一个非空字符 |
w 、e | 光标移动到下一个单词开头/末尾 |
W | 光标移动到下一个单词开头,但是忽略一些标点 |
E | 光标移动到下一个单词末尾,如果有标点,则移动到标点处 |
b | 光标移动到上一个单词开头 |
B | 光标移动到上一个单词开头,但是忽略一些标点 |
ge | 光标移动上一个单词的末尾 |
gE | 光标移动上一个单词的末尾,并将标点当作单词的末尾处理 |
( | 向后移动一句话 |
) | 向前移动一句话 |
{ | 向前移动一段话 |
} | 向后移动一段话 |
fx /Fx | 将光标移动到同一行的下/上一个字符x 处 |
tx /Tx | 将光标移动到同一行的下/上一个字符x 前 |
; | 配合f 、t 使用,重复一次 |
, | 配合f 、t 使用,反向重复一次 |
💫上表所示的操作都可以结合一个数字
n
,重复操作n
次,比如3j
则表示向下移动3行。
快捷键 | 作用 |
---|---|
0 | 移动到行首 |
g0 | 移动到当前屏幕行的行首 |
^ | 移动到本行第一个非空字符 |
g^ | 移动到当前屏幕行的行首 |
$ | 移动到行尾 |
g$ | 移动到当前屏幕行的行尾 |
n| | 移动到第n 列 |
ng 或:n | 移动到第n 行 |
:$ | 移动到最后一行 |
Ctrl+o | 移动到上次光标停留位置 |
Ctrl+i | 移动到下次光标停留位置 |
H | 移动到当前屏幕最顶端 |
M | 移动到当前屏幕中间 |
L | 移动到当前屏幕最底端 |
gg | 移动到文件开头 |
G | 移动到文件末尾 |
📘 翻屏移动
快捷键 | 作用 |
---|---|
ctrl+f/b | 向下/上翻一屏 |
ctrl+d/u | 向下/上翻半屏 |
ctrl+e/y | 向下/上滚动一行 |
n% | 跳转到文件的n% 处 |
zz | 将当前行移动到屏幕中间 |
zt | 将当前行移动到屏幕顶端 |
zb | 将当前行移动到屏幕底端 |
📘 标记
使用标记可以快速移动。
快捷键 | 作用 |
---|---|
m{a-z} | 局部标记,只作用于当前文件 |
m{A-Z} | 向下/上翻半屏 |
Ctrl+o /Ctrl+i | 这里的表述不太准确! 在标记中?进行后退/前进操作 |
`{a-z} | 移动到标记位置 |
'{a-z} | 移动到标记行的行首 |
`{0-9} | 回跳到上[2-10] 次关闭vim时最后离开的位置 |
" | 移动到上次编辑的位置,如果想跳转到更老的位置, 可以使用 Ctrl+o ,跳转到更新的位置使用Ctrl+i |
`" | 移动到上次离开的地方 |
`. | 移动到最后改动的地方 |
:marks | 显示所有标记 |
:delmarks x y | 删除标记x 与y |
:delmarks x-z | 删除标记x 、y 和z |
:delmarks! | 删除当前缓冲区的所有标记 |
:help mark-motions | 查看更多关于mark的知识 |