本篇主要聚焦光标的移动和跳转,有些命令在之前一系列的文章中已经涉及到。
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的跳转操作。