用过Linux的人无不知道Vim,其被称作“编辑器之神”(与另一个“神的编辑器” EMACS 一直并列文本编辑器两大无可替代的“神器”之位)。
如果知道Vim的前身Vi的作者Bill Joy,就会明白这个神级程序员所创造的神级编辑器本质上就是为程序员们量身定制的。
Vim具有入门易、深入难的特点,熟练者爱它爱的要死,入门者却觉得极其难用。为什么呢?快捷键多如牛毛。看看下面的Vim键盘图就心乱如麻、望而却步了。
但是,Vim的命令的使用技巧并不需要全部掌握,了解其精髓及少量最能提高效率的命令即可以游刃有余。
今天我们接着前几天的 Linux Shell 和 MySQL 技巧,继续提高效率第3篇—— Vim 提速篇。总结了常用的提升效率的几个技巧,希望对大家有用。
真经——“普通模式”就是最普通的模式
初学者通常特别喜欢插入模式(或者也叫做编辑模式),但是这种模式经常会出现粘贴错乱、backspace按键无法删除字符等各种初学者无法理解的问题。
所以,真经就是,普通模式(或者也叫做正常模式)才是你在用Vim的时候花最多时间在上面的模式。
这里需要有一个正确的意识形态:把插入模式当成是一个极不正常、不普通的状态,当成在迫不得已的时候才要去的一个最不想去的地方,一旦在插入模式下完成操作马上、立即、迅速离开!切换回普通模式。
第1条 放弃上下左右箭头键,开始使用 hjkl键
上下左右键的使用经常会带来编辑器展示神经错乱的问题,这时候需要习惯去使用h、j、k、l键。
原因就是,一来编辑器不会展示不正常,二来你的手不用跋涉十几二十厘米甚至更多,从正常的字符键盘跑到上下左右键那里去切换位置。
第2条 减少使用hjkl键,甚至不用
这一条似乎与第1条相悖,但实际上是进一步提速。因为h、j、k、l键实在是太细粒度了,如果想跳跃移动的更高效,可以使用:
1)单词跳跃移动——“w”、“b”、“e”、“ge”
2)整句跳跃移动——“(”、“)”
3)整段跳跃移动——“{”、“}”
第3条 快速定位光标位置
1)当前行快速移动到指定字符相应位置——“f”、“t”、“F”、“T”
2)翻页:翻页有多种方式,Pageup、Pagedown虽然能用,但是同样手要离开字符区十几厘米找到他们然后再回字符区,那么可以使用CTRL-B和CTRL-F翻页;
3)相对光标翻页:
- "zt"(将当前行变为屏幕第一行)
- "zz"(将当前行变为屏幕中间行)
- "zb"(将当前行变为屏幕尾行)
比上述普通翻页好在能够定位相对光标,不至于迷失位置
第4条 屏幕范围内快速移动光标
快速跳跃到屏幕:
- 最上端:“H”
- 中部:“M”
- 最下端:“L”
其实很好记,就是High(高)、Middle(中部)、Low(低)。
第5条 相对行号
这一条对于程序员真的很有用。我们可以看一下绝对行号——“:set nu”:
然后看一下相对行号——":set relativenumber":
体会一下:
1)多行删除:如果你要删除当前行后面的一段函数,你是采用一行一行的dd呢,还是在通过绝对行号中将要删除的行数算一算再删除?
如果采用相对行号,那就好办了,将光标移到对应位置,就可以一目了然要删除的那一段函数有多少行,假如为8,直接输入
“8dd”删除即可。2)多行复制、多行注释等等,同样使用相对行号会更加方便。
比如:如果是想复制相对0点位置上面的第13行到第8行到相对0点位置下面的第6行,那么只需要":-13,-8 co 6"就可以了
第6条 查找必用的快捷键
查找的几个快捷键必须要掌握,因为太常用了:
- "/" 正向查
- "?" 反向查
- "n"和“N”是正向和方向重复上一次查找命令
- "q/"和"q?"会打开一个新的查找历史记录窗口。
- 此外,第3条的 “f”、“t”、“F”、“T”具有同一行内的查找功能。
最后
Vim还有一个很大的特点,就是可扩展性极好,已经不止是一个编辑器,还可以打游戏、收邮件、听音乐......
此外Vim还有无数的插件,比如为了初学者摆脱使用上下左右键和hjkl键、上下页键的习惯,甚至还有一个HardMode的插件禁用了这些键。
归根结底,Vim还是一个文本编辑器,我们使用提速技巧的原则,不求最多,但求最合适。那么你有哪些觉得用的顺手又高效的Vim技巧呢?欢迎在评论区留言。
閱讀更多 AIOps 的文章