介绍Vim光标移动命令,移动vim光标到行首、行跳转、vim匹配单词和匹配括号跳转,Vim翻页命令。
1.Vim光标移动简介
Vi/Vim中进行光标移动的命令是针对不同的操作单位而设计,不同的命令对应不同的操作单位。
在执行Vim光标移动命令时,首先要分清楚是采用哪种操作单位:一个字符、一个句子、一个段落、一行、一屏、一页。
确定操作单位后,需要确定命令重复执行的次数。Vim光标移动命令的操作对象范围计算公式为: 操作范围 = 操作次数 x 操作单位
例如:5h
命令表示左移5个字符,8w
命令右移8个单词
2.上下左右
←h
j
↓ k
↑ l
→
Vim的上下左右移动光标命令是经过精心设计的,我们在使用编辑器时最常用的操作是下移光标。而键盘上的j、k按键使用最方便,所以分别用来作为下移、上移光标。 h
、l
分别位于j
、k
的两侧,根据其所在方位用来实现光标的左移和右移。
3.行级移动
- 移动光标到当前行行首:
0
- 移动光标到当前行行尾:
$
- 移动光标到当前行的第一个非空字符:
^
- 移动光标到当前文件的第n行:
nG
- 移动光标到当前文件的第n行 (同上):
:n
tips
:
- Vim的命令中,
0
表示行首,$
表示行尾。可以回顾下Vim文本编辑命令汇总中提到的删除命令,里面就提到了0
和$
- 移动光标到当前文件的第n行使用的命令:n是在vim尾行模式下执行的,所以输入完
:n
后需要按回车键执行命令
4.文件首尾移动
- 移动光标到当前文件的第一行:
gg
或 :0
- 移动光标到当前未经的最后一行:
GG
或 :$
5.单词级移动
- 移动到下一单词的开头:
w
或 W
- 移动到上一单词的开头:
b
或 B
- 移动到光标所在单词的末尾:
e
或 E
W
、B
、E
命令操作的单词是以空白字符(空格、Tab)分隔的字串 比如字符串“str1-str2 str3-str4”,对W、B、E命令来说是两个单词,而对w、b、e命令来说则是四个单词
6.匹配单词级移动
- 移动光标到 [匹配] 光标当前所在单词的下一个单词:
*
- 移动光标到 [匹配] 光标当前所在单词的上一个单词:
#
7.匹配括号移动
移动光标到括号左半部分( 包括(、{、[ )对应右半匹配部分( )、}、] ): %
8.段落级移动
- 移动光标到当前段落的末尾:
}
- 移到光标到当前段落的开头:
{
9.屏幕级移动
- 移动光标到屏幕的第一行:
H
- 移动光标到屏幕的中间一行:
M
- 移动光标到屏幕的最后一行:
L
10.翻页
- 向前滚动一页:
Ctrl + f
- 向后滚动一页:
Ctrl + b
- 向前滚动半页:
Ctrl + u
- 向后滚动半页:
Ctrl + d
11.与其他命令联动
基本命令模式为:<start_position><command><end_position>
例如,Vim命令0y$
拆开分别表示:0移动光标到当前行首;y复制;$当前行尾。所以,命令0y$意味着复制光标当前所在行所有内容
例如,Vim命令ye
,表示从当前位置拷贝到当前所在单词的最后一个字符