Vim教程网(https://vimjc.com)介绍 Vim 光标移动命令,包括移动 vim 光标到行首、行跳转、vim 匹配单词和匹配括号跳转,Vim 翻页命令等。

一、Vim光标移动简介

Vi/Vim中进行光标移动的命令是针对不同的操作单位而设计,不同的命令对应不同的操作单位。

在执行Vim光标移动命令时,首先要分清楚是采用哪种操作单位:一个字符、一个句子、一个段落、一行、一屏、一页。

确定操作单位后,需要确定命令重复执行的次数。Vim 光标移动命令的操作对象范围计算公式为:
操作范围 = 操作次数 x 操作单位

例如:5h 命令表示左移 5 个字符,8w 命令右移 8 个单词。

二、Vim移动光标命令

2.1 上、下、左、右移动

1
2
3
4
5
      ^
k
<h l>
j
v

Vim的上下左右移动光标命令是经过精心设计的,我们在使用编辑器时最常用的操作是下移光标。
而键盘上的 jk 按键使用最方便,所以分别用来作为下移、上移光标。
hl 分别位于 jk 的两侧,根据其所在方位用来实现光标的左移和右移。

2.2 行级移动

0         移动光标到当前行行首
$         移动光标到当前行行尾
^         移动光标到当前行的第一个非空字符
nG       移动光标到当前文件的第n行
:n       移动光标到当前文件的第n行 (同上)

(1) Vim 的命令中,0 表示行首,$ 表示行尾。可以回顾下Vim文本编辑命令汇总中提到的删除命令,里面就提到了 0$

(2) 移动光标到当前文件的第 n 行使用的命令 :n 是在vim命令行模式下执行的,所以输入完 :n 后需要按回车键执行命令。

2.3 文件首尾移动

gg:0       移动光标到当前文件的第一行
GG:$       移动光标到当前未经的最后一行

2.4 单词级移动

wW          移动到下一单词的开头
bB          移动到上一单词的开头
eE          移动到光标所在单词的末尾

vim单词级鼠标移动

W、B、E命令操作的单词是以空白字符(空格、Tab)分隔的字串。
比如字符串“str1-str2 str3-str4”,对W、B、E命令来说是两个单词,而对w、b、e命令来说则是四个单词。

关于Vim单词和字串,可以参考Vim教程网文章Vim基于单词移动及其Vim单词、字串概念

2.5 匹配单词级移动

*        移动光标到匹配光标当前所在单词的一个单词
#        移动光标到匹配光标当前所在单词的一个单词

vim搜索查找

2.6 匹配括号移动

%        移动光标到括号左半部分( 包括({[ )对应右半匹配部分( )}] )

2.7 段落级移动

}       移动光标到当前段落的末尾
{       移到光标到当前段落的开头

2.8 屏幕级移动

H       移动光标到屏幕的第一行
M       移动光标到屏幕的中间一行
L       移动光标到屏幕的最后一行

2.9 翻页

Ctrl + f       向前滚动一页
Ctrl + b       向后滚动一页

Ctrl + u       向前滚动半页
Ctrl + d       向后滚动半页

Vim翻页

三、与其他命令联动

很多命令都可以和Vim教程网总结的vim光标移动命令连动。

基本命令模式为:<start_position><command><end_position>

例如,Vim 命令 0y$ 拆开分别表示:0 移动光标到当前行首;y 复制;$ 当前行尾。所以,命令 0y$ 意味着复制光标当前所在行所有内容。

例如,Vim 命令 ye,表示从当前位置拷贝到当前所在单词的最后一个字符。

《女程序员说》

原创不易,希望能给小女子的公众号加个关注~