本篇主要聚焦光标的移动和跳转,有些命令在之前一系列的文章中已经涉及到。
j
和k
如何在屏幕行进行上下移动?
使用gj
和gk
即可。同理,0
和$
前面添加上g
也是对屏幕行的操作。
w
和e
的反向操作是什么?
拉莫斯的反向操作是b
(保利尼奥),皮克的反向操作是ge
,他们的反向组成“b-ge”组合。顺便提一句,《Vim实用技巧》一书的作者喜欢使用ea
组合键用于在单词结尾后添加内容。
单词和字串的区别是什么?
单词:字母、数字、下划线或者其它非空白字符的序列组成;
字串:由非空白字符序列组成,字串间以空白字符分隔;
所以对应的,w
和W
分别用来表示单词和字串的向后移动,W
用国脚张琳梵表示。
如何对当前行之外的内容进行查找?
这里考察的是诺伊尔的使用。在Normal模式输入/内容<CR>
,这样就可以跨行搜索多个匹配的目标,匹配目标之间的跳跃使用n
和N
。
如何快速的跨行删除指定内容?
一种可行的方案是:在Visual模式下(v),使用诺伊尔搜索,然后跟上一个d
,可以完成要求。
如何高亮{}内的文本(不包含{})?
这个问题考察的是库蒂尼奥的用法,当光标在括号内时,键入vi}
就能高亮目标文本。
如何高亮{}内文本(包括{})?
只要将上一个问题的解决方案中的i
替换成a
即可。
如何高亮XML内文本?
XML在这里用t
表示,前面的解决方案中,}
改为t
。
如何直接删除{}内的文本?
直接删除不用进入Visual模式,也就是说,讲前面的解决方案的v
改为c
或者d
,就可以直接用删除取代之前的高亮。
注:如果是拷贝{}内的文本,使用y
代替v
。
一般来说d
和a
搭配比较好,而c
和i
搭配比较好。
如何将一对括号修改为一对中括号?
假设现在给以一段字符串:{nihao alibb},现在要讲{}改编为[],首先光标停留在{
上,然后采用蒂亚戈(%),此时使用r]
更换掉}
,接着使用``跳转到之前{
的地方,然后使用r[
更换[
。
Vim如何翻页?
向上翻页是
前面某问下使用了``跳转命令,它和
``会更新jump历史,所以连续按此命令会重复在两个位置上跳转,而<C-o>
会一直回跳到关闭为止。
如何标记自定义位置?
在Normal模式下使用m[字符]
的形式标记一个自定义的位置,当要跳转到该位置时,使用`[字符]命令就可以满足要求。
如何分屏?
横向分屏使用:sp
命令,纵向使用:vsp
。
如何在各屏中切换?
首先键入C-w
,然后通过w
、W
在各屏中切换,w
和W
方向相反。
如何关闭光标所在窗口、如何关闭其它窗口?
在键入C-w
的条件下,键入c
是关闭当前窗口(如果该窗口是唯一窗口则不关闭,如果希望关闭则使用q
),键入o
是关闭其他窗口。
如何将某个窗口和下一个窗口互换?
键入C-w
,通过r
进行窗口互换。
如何新开一个没有任何输入的窗口?
键入C-w
,接着键入n
。
在新开了一个没有任何输入的窗口后,如何保存,保存后如何打开?
保存采用:w [文件名]
的方式,如果希望再次打开,可以使用:sp/vsp [文件名]
的方式打开。
小结
本文主要总结Vim的跳转操作。