Vim 中如何快速移动光标

上下左右:以字符为单位

进入 Vim 的 normal 模式(如果你在 visual 模式或者 insert 模式,可以按若干次 Esc 回到 normal 模式)。
h 向左移动一个字符。
j 向下移动一个字符。
k 向上移动一个字符。
l 向右移动一个字符。
和其他快捷键一样,可以配合数字来移动多个字符,比如 5l 向左移动 5 个字符。

以单词为单位移动

多数情况下单词移动比字符移动更加高效,比如要走到当前变量名前加一个 let。

w 移动到下一个单词的词首。
b 移动到上一个单词的词首。
e 移动到下一个单词的结尾。
单词移动同样支持数字前缀,比如 4w 可以向后移动 4 个单词。此外大写的 W, B, E 具有同样的功能,只不过小写用标点符号来分隔单词,大写用空格来分隔单词,更适合在代码里移动。

以行为单位移动

^ 移动到行首第一个词的首字母。
| 移动到行首第一个字符。
$ 移动到行尾。
j 移动到下一行。
k 移动到上一行。
:10 移动光标到文件第 10 行。可以 :set number 来让 vim 显示行号。
gg 移动到文件首行。
G 移动到文件尾行。
上下行移动的命令同样可以加数字,比如 10j 向下移动 10 行。

以屏幕为单位移动

H 移动到当前屏的首行。
L 移动到当前屏的尾行。
M 移动到当前屏的中间行。
zt 光标所在字符不动,将当前行移动到屏幕顶部,通常用来查看完整的下文,比如函数、类的定义。
zz 光标所在字符不动,将当前行移到屏幕中间。
zb 光标所在字符不动,将当前行移到屏幕底部。
ctrl-f 向下翻页,移动一整个屏幕。
ctrl-b 向上翻页,移动一整个屏幕。
ctrl-e 屏幕向下滚动一行。
ctrl-y 屏幕向上滚动一行。
后面几个 Ctrl 开头的命令是 Unix 命令行的惯例,比如在 man 和 less 里也适用。

搜索结果之间跳转

在 Vim 中查找 时,

n 跳转到下一个匹配。
N 跳转到上一个匹配。
ctrl-o 后退到上一个光标位置。
ctrl-i 前进到下一个光标位置。

文件之间移动

<backspace> 跳转到交替文件(上一个文件)。
gt 跳转到下一个标签页。
gT 跳转到上一个标签页。
Ctrl+w h 切换到左边窗格。
Ctrl+w j 切换到下边窗格。
Ctrl+w k 切换到上边窗格。
Ctrl+w l 切换到右边窗格。
Ctrl+w w 遍历切换窗格。

参考:Vim 中如何快速移动光标?

作者:admin  创建时间:2022-09-22 11:11
最后编辑:admin  更新时间:2025-01-08 21:40