vi-vim (六):光标移动、缓冲区移动、搜索移动、行号跳转
移动和跳转
不论任何时候,光标必然位于屏幕的某一行上,这一行就称之为当前行。
在当前行中,光标位于某个字符之上或者之下,这个字符就称之为当前字符。
为了增强光标移动命令的功能,可以通过在命令前面键入一个数字来重复执行光标移动命令,这个数字称为重复次数。
6.1获取光标当前位置
获取方式:^G
6.2 缓冲区移动
操作键 |
说明 |
^F |
向下移动一屏 |
^B |
向上移动一屏 |
n^F |
向下移动n屏 |
n^B |
向上移动n屏 |
^D |
向下移动半屏 |
^U |
向上移动半屏 |
n^D |
向下移动n行 |
n^U |
向上移动n行 |
^E |
向屏幕顶端多滚动一行 |
^L |
向屏幕底端多滚动一行 |
zENTER |
将光标所在的行移动到屏幕顶端 |
z. |
将光标所在的行移动到屏幕中间 |
z- |
将光标所在的行移动到屏幕底端 |
6.3 光标移动、单词句段移动
操作键 |
说明 |
h <Left> |
将光标向左移动一个位置 |
j <Down> |
将光标向下移动一个位置 |
k <Up> |
将光标向上移动一个位置 |
l <Right> |
将光标向右移动一个位置 |
- |
将光标移动到上一行的开头 |
+ <Return> |
将光标移动到下一行的开头 |
^ |
将光标移动到当前行的第一个非空格/制表符的字符上 |
数字0 |
将光标移动到当前行的开始 |
$ |
将光标移动到当前行的末尾 |
单词、句段移动 |
|
w W |
将光标移动到下一个单词的词首(大写字母,略过空格) |
e E |
将光标移动到下一个单词的词尾(大写字母,略过空格) |
b B |
将光标移动到上一个单词的词首(大写字母,略过空格) |
) |
向前移动到下一个句子 |
( |
向后移动到上一个句子 |
{ |
向前移动到下一个段落 |
} |
向后移动到上一个段落 |
H |
将光标移动到屏幕顶部 |
M |
将光标移动到屏幕中间 |
L |
将光标移动到屏幕的最后一行 |
% |
已匹配一个括号为目的的移动 |
说明:
1.命令计数:在移动命令前加数字,如3j,可实现向下移动三行。
语法:ncommand (n为数字,command为移动命令)
2. 规律:一个命令的大写字母形式会做同样的事情,但是方向相反。
6.4 搜索移动
fcharacter 单字符搜索移动(f为搜索命令,character为要搜索的字符)
Fcharacter 单字符左方向搜索移动
6.5 行号跳转
显示行号: :set number
关闭行号: :set nonumber
命令 |
说明 |
nG 、 :n |
跳转到第n行 |
1G 、 gg 、 :1 |
跳转到编辑缓冲区的第一行 |
G 、 :$ |
跳转到编辑缓冲区最后一行 |
附加:
另一个移动到某行的办法是:在命令 % 前加一个命令计数,如 50% 会把光标定位在文件中间。
6.6 跳转到前一位置
返回前一位置:
a) ``(两个反引号)
b) ‘’(两个单引号)
6.7 使用名称标示任意行,进行跳转
用不可见的名称标识任意行,当需要时使用此名称跳转到这一行。
可以键入m标示这一行,后跟一个字母,这个字母就是这一行的名称。例如:用”b“标示这一行,可以键入mb。为了跳转到这一行,可以键入一个反引号或单引号,后面跟这一行的名称。如:`b 或 ’b