不论任何时候,光标必然位于屏幕的某一行上,这一行就称之为当前行。

在当前行中,光标位于某个字符之上或者之下,这个字符就称之为当前字符。

为了增强光标移动命令的功能,可以通过在命令前面键入一个数字来重复执行光标移动命令,这个数字称为重复次数。

获取光标当前位置

获取方式:^G

缓冲区移动

命令 说明
^F 向下移动一屏
^B 向上移动一屏
n^F 向下移动n屏
n^B 向上移动n屏
^D 向下移动半屏
^U 向上移动半屏
n^D 向下移动n行
n^U 向上移动n行
^E 向屏幕顶端多滚动一行
^L 向屏幕底端多滚动一行
zENTER 将光标所在的行移动到屏幕顶端
z. 将光标所在的行移动到屏幕中间
z- 将光标所在的行移动到屏幕底端

光标移动

命令 说明
h 将光标向左移动一个位置
j 将光标向下移动一个位置
k 将光标向上移动一个位置
l 将光标向右移动一个位置
- 将光标移动到上一行的开头
+ 将光标移动到下一行的开头
^ 将光标移动到当前行的第一个非空格/制表符的字符上
数字0 将光标移动到当前行的开始
$ 将光标移动到当前行的末尾

单词、句段移动

命令 说明
w W 将光标移动到下一个单词的词首(大写字母,略过空格)
e E 将光标移动到下一个单词的词尾(大写字母,略过空格)
b B 将光标移动到上一个单词的词首(大写字母,略过空格)
向前移动到下一个句子
向后移动到上一个句子
{ 向前移动到下一个段落
} 向后移动到上一个段落
H 将光标移动到屏幕顶部
M 将光标移动到屏幕中间
L 将光标移动到屏幕的最后一行
% 已匹配一个括号为目的的移动

命令计数:在移动命令前加数字,如3j,可实现向下移动三行。

语法:ncommand   (n为数字,command为移动命令)

规律:一个命令的大写字母形式会做同样的事情,但是方向相反。

搜索移动

命令 说明
fcharacter    单字符搜索移动(f为搜索命令,character为要搜索的字符)
Fcharacter   单字符左方向搜索移动

行号跳转

命令 说明
显示行号: :set number
关闭行号: :set nonumber

跳转:

命令 说明
nG 、 :n 跳转到第n行
1G 、 gg 、 :1 跳转到编辑缓冲区的第一行
G 、 :$ 跳转到编辑缓冲区最后一行

附加:

另一个移动到某行的办法是:在命令 % 前加一个命令计数,如 50% 会把光标定位在文件中间。

跳转到前一位置

返回前一位置:

  • `` 两个反引号

  • ‘’ 两个单引号

使用名称标示任意行,进行跳转

用不可见的名称标识任意行,当需要时使用此名称跳转到这一行。

可以键入m标示这一行,后跟一个字母,这个字母就是这一行的名称。例如:用”b“标示这一行,可以键入mb。为了跳转到这一行,可以键入一个反引号或单引号,后面跟这一行的名称。如:`b 或 ’b