Skip to content

Vim - 导航

Vim 擅长高级导航,让你能以惊人的速度和精度在文件中移动。掌握这些技巧是提高生产力的关键。本章涵盖了基本的导航命令。

Vim 导航的基石是按字符或按行移动。这些命令在普通模式(Normal mode)下执行:

序号命令及说明
1h
将光标向左移动一个字符。
2l
将光标向右移动一个字符。
3k
将光标向上移动一行。
4j
将光标向下移动一行。

要移动多个位置,可以在命令前加上一个数字。例如,要将光标从当前行向下移动 10 行,执行:

10j

这个计数乘数也适用于 h、l 和 k。例如,5h 将光标向左移动 5 个字符。

其他重要的行导航命令:

序号命令及说明
10(数字零)
将光标移动到当前行的最开头。
2^
将光标移动到当前行的第一个非空白字符。
3$
将光标移动到当前行的末尾。
4gg
跳转到文件的第一行。
5G
跳转到文件的最后一行。
6:n
跳转到文件的第 n 行(例如,:100 跳转到第 100 行)。

用于在较大文本区域中移动:

序号命令及说明
1Ctrl + f
向下滚动一整屏(向前)。
2Ctrl + b
向上滚动一整屏(向后)。
3Ctrl + d
向下滚动半屏(向下)。
4Ctrl + u
向上滚动半屏(向上)。

Vim 允许按单词导航,单词是字母、数字和下划线的序列,或者是由空白字符分隔的其他非空白字符的序列:

序号命令及说明
1w
将光标移动到下一个单词的开头。
2e
将光标移动到当前单词的末尾(如果已在末尾,则移动到下一个单词的末尾)。
3b
将光标移动到前一个单词的开头。

要按 WORD(由空白字符分隔的非空白字符序列)导航,请使用它们的大写对应命令:W、E 和 B。

Vim 维护一个“跳转列表”(jump list),用于跟踪你跳转过的位置。使用 G、gg、/{模式}、?{模式}、'm(标记 marks)等命令,以及在文件之间移动时,都会发生跳转。这让你能够轻松地回溯。

跳转列表存储每次跳转的文件名、行号和列号。

要查看跳转列表,执行:

:jumps

导航跳转列表的命令:

序号命令及说明
1Ctrl + o
跳回到跳转列表中的上一个(更旧的)位置。
2Ctrl + i
向前跳到跳转列表中的下一个(更新的)位置。(注意:Ctrl+i 通常映射到 Tab 键)。

实际应用:高效导航对于快速理解和修改代码或文本至关重要。结合数字使用移动命令(例如,3w 向前移动三个单词)和利用跳转列表可以显著减少移动光标所花费的时间,让你专注于内容本身。