IGNORANT

Vim学习(二)-快速移动位置

根据屏幕来移动

滚动屏幕

<CTRL> f      //往前滚动一整屏
<CTRL> b      //往后滚动一整屏
<CTRL> d      //往下滚动半屏
<CTRL> u      //往后滚动半屏
<CTRL> e      //往下滚动一行
<CTRL> y      //往上滚动一行

用z重新调整屏幕位置

z <ENTER>   //将光标所在行滚动至屏幕顶端
z .         //将光标所在行滚动至屏幕中心
z -         //将光标所在行滚动至屏幕底端

200z <ENTER>    //将第200行滚动至屏幕顶端

重画屏幕

<CTRL> L    //当你编辑时,可能遇到计算机显示一些消息在屏幕上,影响工作,你需要重画屏幕

在屏幕中移动

H       //移动到屏幕顶端的行
M       //移动到屏幕中间的行
L       //移动到屏幕底端的行

4H      //移动到屏幕顶端的第四行

根据行移动

<ENTER> //移动到下一行的第一个字符
+       //移动到下一行的第一个字符
-       //移动到上一行的第一个字符

h、l    //当前行的左右移动
0       //移动到行首
$       //移动到行尾
^       //移动到当前行的第一个非空格处,忽略任何空格与制表符
64|     //移动到当前行的第64列

根据文本块来移动

w       //移动到下一个字词(包含标点)
W       //移动到下一个字词(只以空格为分隔符,不包含标点)
b       //移动到上一个字词(包含标点)
B       //移动到上一个字词(只以空格为分隔符,不包含标点)
e       //移动到单词的结尾(包含标点)
E       //移动到单词的结尾(只以空格为分隔符,不包含标点)

(       //移动到当前句子的开头
)       //移动到下一个句子的开头
{       //移动到当前这一段的开头
}       //移动到当下一段的开头
[[      //移动到当前这一节的开头
]]      //移动到下一节的开头

说明:
vi会寻找?、.、!这些标点符号,以辨认句子结束。当这些标点符号后面有至少两个空格OR它们作为一行最后一个非空格字符时,vi将其定位为一个句子的结束。如果你在句号后面只留了一个空格或该句以引号结束,则vi不能辨认这个句子。
段落的定义是下一个空白行前的文本,或是出现在troff MS macro package中默认的段落宏前的任何文本。
小节是下一个默认的节宏前的文本。使用:set可自定义这些宏。(以上说明摘自《学习vi和vim编辑器》P45)

根据搜索模式的结果来移动

全文搜索

/       //搜索模式,后可跟字符串,从光标处向文尾搜索,若到结尾又从头,遍历一次。
?       //与/相反的遍历方向
n       //向同一个方向重复搜索,相当于搜索下一个
N       //向相反的方向重复搜索
;       //重复上一个搜索命令,方向相同
,       //重复上一个搜索命令,方向相反

:set nowrapscan //搜索时,取消绕过开头或者结尾

当前行内搜索

fx      //搜索本行中下一个出现x的地方,并将光标移到该处
Fx      //搜索本行中上一个出现x的地方,并将光标移到该处
tx      //搜索本行中下一个出现x的前一个字符,并将光标移到该处
Tx      //搜索本行中上一个出现x的后一个字符,并将光标移到该处

说明:tx、Tx就像在取x的"左极限、右极限"一样。

根据行号来移动

<CTRL> G    //显示当前行号、文件总行数以及当前位置占全文百分百
44G     //跳转至44行首
``      //跳转到某行首,输入该命令跳回,搜索状态下,使用该命令可回至上一次使用搜索命令处
''      //将光标移到前次位置所在行的行首

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »