Vim 文本编辑器中,最简单的移动光标的方式是使用方向键,但这种方式的效率太低,更高效的方式使用快捷键。

Vim 移动光标常用的快捷键及其功能如下面各表所示,需要注意的是,表中所有的快捷键都在命令模式(默认状态)下直接使用。

Vim快捷方向键

表 1 Vim光标上、下、左、右移动快捷键
快捷键功能描述
h光标向左移动一位
j光标向下移动一行(以回车为换行符),也就是光标向下移动
k光标向上移动一行(也就是向上移动)
光标向右移动一位


最初使用,大家可能觉得比较别扭,但熟能生巧,使用此方式移动光标同样能够提高编辑速度。

Vim光标以单词为单位移动

某些情形下,可能需要光标迅速移动至一行中的某个位置,将光标以单词为单位进行移动就会很方便。

表 2 Vim光标以单词为单位进行移动
快捷键功能描述
w 或 W光标移动至下一个单词的单词首
b 或 B光标移动至上一个单词的单词首
e 或 E光标移动至下一个单词的单词尾
nw 或 nWn 为数字,表示光标向右移动 n 个单词
nb 或 nBn 为数字,表示光标向左移动 n 个单词

Vim光标移动至行首或行尾

表 3 光标移动到行首或行尾
快捷键功能描述
0 或 ^光标移动至当前行的行首
$光标移动至当前行的行尾
n$光标移动至当前行只有 n 行的行尾,n为数字

Vim光标移动至指定字符

一行中,如果需要将光标移动到当前行的某个特点字符,则可以使用表 4 中的快捷键。

表 4 光标移动至指定字符
快捷键功能描述
fx光标移动至当前行中下一个 x 字符处
Fx 光标移动至当前行中下一个 x 字符处

Vim光标移动到指定行

表 5 光标移动到指定行
快捷键功能描述
gg光标移动到文件开头
G光标移动至文件末尾
nG光标移动到第 n 行,n 为数字
:n编辑模式下使用的快捷键,可以将光标快速定义到指定行的行首

Vim光标移动到匹配的括号处

程序员在编辑程序时,经常会为将光标移动到与一个 "(" 匹配的 ")" (对于 [] 和 {} 也是一样的)处而感到头疼。Vim 里面提供了一个非常方便地査找匹配括号的命令,这就是 "%"。

比如,在 /etc/init.d/sshd 脚本文件中(最好还是复制后练习,小心驶得万年船),想迅速地将光标定位到与第 49 行的 "{" 相对应的 "}" 处,则可以将光标先定位在 "{" 处,然后再使用 "%" 命令,使之定位在 "}" 处,如图 6 所示。


1.jpg

图 6 使用"%"命令定位括号