收看世界杯并快记常用Vim命令:进阶(三)

本篇主要聚焦光标的移动和跳转,有些命令在之前一系列的文章中已经涉及到。

jk如何在屏幕行进行上下移动?

使用gjgk即可。同理,0$前面添加上g也是对屏幕行的操作。

we的反向操作是什么?

拉莫斯的反向操作是b(保利尼奥),皮克的反向操作是ge,他们的反向组成“b-ge”组合。顺便提一句,《Vim实用技巧》一书的作者喜欢使用ea组合键用于在单词结尾后添加内容。

单词和字串的区别是什么?

单词:字母、数字、下划线或者其它非空白字符的序列组成;

字串:由非空白字符序列组成,字串间以空白字符分隔;

所以对应的,wW分别用来表示单词和字串的向后移动,W用国脚张琳梵表示。

如何对当前行之外的内容进行查找?

这里考察的是诺伊尔的使用。在Normal模式输入/内容<CR>,这样就可以跨行搜索多个匹配的目标,匹配目标之间的跳跃使用nN

如何快速的跨行删除指定内容?

一种可行的方案是:在Visual模式下(v),使用诺伊尔搜索,然后跟上一个d,可以完成要求。

如何高亮{}内的文本(不包含{})?

这个问题考察的是库蒂尼奥的用法,当光标在括号内时,键入vi}就能高亮目标文本。

如何高亮{}内文本(包括{})?

只要将上一个问题的解决方案中的i替换成a即可。

如何高亮XML内文本?

XML在这里用t表示,前面的解决方案中,}改为t

如何直接删除{}内的文本?

直接删除不用进入Visual模式,也就是说,讲前面的解决方案的v改为c或者d,就可以直接用删除取代之前的高亮。

注:如果是拷贝{}内的文本,使用y代替v

一般来说da搭配比较好,而ci搭配比较好。

如何将一对括号修改为一对中括号?

假设现在给以一段字符串:{nihao alibb},现在要讲{}改编为[],首先光标停留在{上,然后采用蒂亚戈(%),此时使用r]更换掉},接着使用``跳转到之前{的地方,然后使用r[更换[

Vim如何翻页?

向上翻页是,向下翻页的方法是,向上翻页半屏是,向下翻页半屏是

前面某问下使用了``跳转命令,它和有什么不同?

``会更新jump历史,所以连续按此命令会重复在两个位置上跳转,而<C-o>会一直回跳到关闭为止。

如何标记自定义位置?

在Normal模式下使用m[字符]的形式标记一个自定义的位置,当要跳转到该位置时,使用`[字符]命令就可以满足要求。

如何分屏?

横向分屏使用:sp命令,纵向使用:vsp

如何在各屏中切换?

首先键入C-w,然后通过wW在各屏中切换,wW方向相反。

如何关闭光标所在窗口、如何关闭其它窗口?

在键入C-w的条件下,键入c是关闭当前窗口(如果该窗口是唯一窗口则不关闭,如果希望关闭则使用q),键入o是关闭其他窗口。

如何将某个窗口和下一个窗口互换?

键入C-w,通过r进行窗口互换。

如何新开一个没有任何输入的窗口?

键入C-w,接着键入n

在新开了一个没有任何输入的窗口后,如何保存,保存后如何打开?

保存采用:w [文件名]的方式,如果希望再次打开,可以使用:sp/vsp [文件名]的方式打开。

小结

本文主要总结Vim的跳转操作。

参考

《Vim实用技巧》