不论任何时候,光标必然位于屏幕的某一行上,这一行就称之为当前行。
在当前行中,光标位于某个字符之上或者之下,这个字符就称之为当前字符。
为了增强光标移动命令的功能,可以通过在命令前面键入一个数字来重复执行光标移动命令,这个数字称为重复次数。
获取光标当前位置
获取方式:^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