好用到哭!8个技巧让Vim菜鸟变专家

2019 年 10 月 28 日 CVer

点击上方“CVer”,选择加"星标"或“置顶”

重磅干货,第一时间送达

本文转载自:读芯术



Vim只不过是一个文本编辑器,但如果你曾见过真正的高手是如何使用vim的,你就会知道,这个软件出人意料地强大、高效、迅捷。对于高水平使用者而言,vim能够帮助其更清晰、明确地表达操作指令。一旦熟练掌握vim语言,使用者就能更加快速地和自己的电脑交流。


必备条件


在开始阅读本文之前,你应该至少知道vim有哪些简单的指令,例如基本动作、导入操作和查找信息。如果你还不了解这些知识,你可以打开软件终端并运行:


sudo apt-get install vim


接着,你就可以运行以下指令来自学vim:


vimtutor


1. 宏指令


不得不重复进行的某些文本编辑任务会让人觉得很烦躁,做那些需要操作者重复几十次的任务就更糟糕了。宏指令能够有效地解除这些麻烦。你只需要敲击一个记录键,输入需要改变的指令,然后在指令结束时停止记录就可以了。之后,你就可以重复使用在这个记录里的动作了,而这只需你按下一个键。


•  按下‘q’键让vim开始记录,然后按任意键,来告诉vim你想把保存的记录下次通过这个键来调出。本次案例中,这个键设置为‘a’,所以完整的指令就是‘qa’。


•  执行你的命令。


•  按下‘q’来结束记录。


•  需要重复保存的系列动作时,输入‘@a’即可。


2. 相对行号


没人喜欢心算。即使你能心算得很快,算出23=23总要快于141-118=23。相对行号和绝对行号不同,它显示的是你光标所在行的相对数字。这个功能不仅便利了删除行的操作,也使跳到指定位置的过程变得更为简洁。你可以在.vimrc中加入以下指令来得到这个结果:


set relativenumber


举例来讲,你可以通过输入下列vim指令来删除其后的25行:


25dd



3. 寄存器(Registers)


寄存器是在复制文本后,临时储存要粘贴内容的空间。每台电脑都有很多寄存器。Vim会自动地使用一个寄存器来储存它的文本,这些文本和电脑里其他临时储存的复制文本不一样。向你的.vimrc中加入以下指令:


set clipboard=unnamed

set clipboard=unnamedplus


加入这项指令后,在vim中复制粘贴文本就从“CTRL+V”, 和“CTRL+C”这一过程变为简单地输入‘p’。


如果你想在不重写你的寄存器的情况下删除文本,你可以在指令前加上“_符号:“_dd 来删除一行。


4. 重映射Escape操作


Escape键和主键(home row)离得很远。因此,它并不是一个离开当前指令很好的选择。你可以在你的.vimrc中加入:


cnoremap kj <C-C>

cnoremap jk <C-C>


这样,你就可以通过键入’jk’或者‘kj’来离开一个指令,同时,你的手一直呆在主键区。


5. 动词+修饰词+宾语


Vim有一套自己特殊的语法,这套语法遵循‘动词+修饰词+宾语’结构。


动词举例:


•  ‘d’删除(delete)

‘c’改变(change)


修饰词举例:


•  ‘t’直到(till)

•  ‘f’找到(find)

•  ‘i’里(inside)


宾语举例:


•  ‘w’词(word)

•  ‘(’插入语(parenthesis)

•  ‘t’标签(tag)

•  ‘s’句子(sentence)

•  ‘“’引用


举个例子,‘diw’就是删除光标所在的词,无论光标是在词首还是词尾。‘dt)’删除光标所在位置和下括号之间的文本。‘cfp’能删除光标所在位置到该段落结束前的所有文本,之后自动载入插入模式。和‘.’(重复前序指令)一起使用,这套语法就非常强大。


6. 处理空白格(White space fixing)


软件工程中最让人受不了的情况,就是遇到tabs而不是空和空白格(white space)在一行的结尾。为了解决这个问题,你可以向.vimrc加入:


set list


这个指令会在每行结尾显示一个$符号,并且用^I代替tabs。你从而能更容易地识别出tabs和行尾。除此之外,下面的例子中,使用了空代替所有的tabs,这也让空白格更加便于处理:https://vim.fandom.com/wiki/Example_vimrc.



7. 快速查找(navigate)


你习得的有关vim的第一个操作,就是如何使用hjkl键来查找信息。但是,这其实是很慢的查找方式。这里列出了能帮助你快速查找的指令:


•  敲击‘gg’来移动到文档的顶部,‘G’来移动到最底部。


•  敲击CTRL+F来快速向前移动,CTRL+B来快速向后移动。


•  敲击‘zz’来重新定位页的中心,这也你的光标就成为新的中心。


•  遇到上括号像‘{’或者‘(’,你可以敲击‘%’来移动到它们所匹配的下括号。


•  ‘/’可以开始查找你想要的词。


8. 日期(date)


在许多场景下,你需要给文件加上日期。这一操作缓慢且乏味。这时,你可以向你的.vimrc中加入:


nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>

imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>


从而可以只通过键入F3来给文档加日期和时间。


重磅!CVer学术交流群已成立


扫码添加CVer助手,可申请加入CVer-目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪&去雾&去雨等群。一定要备注:研究方向+地点+学校/公司+昵称(如目标检测+上海+上交+卡卡)

▲长按加群


▲长按关注我们

麻烦给我一个在看!

登录查看更多
0

相关内容

Vim 是从 vi 发展出来的一个文本编辑器。宏、跳转、代码补全、编译及错误跳转等方便纯文本编辑和编程的功能特别丰富,也支持使用不少的脚本语言进行功能定制和扩充,在程序员中被广泛使用。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【经典书】Python数据数据分析第二版,541页pdf
专知会员服务
193+阅读 · 2020年3月12日
PC微信逆向:两种姿势教你解密数据库文件
黑客技术与网络安全
16+阅读 · 2019年8月30日
ISeeYou一款强大的社工工具
黑白之道
30+阅读 · 2019年5月17日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
可能是 Android 上最好用的写作 App
少数派
10+阅读 · 2018年12月21日
Stata绘图:简单好用的37条外部命令
R语言中文社区
25+阅读 · 2018年9月22日
刚开始学编程?这几款小工具能让你事半功倍
iOS高级调试&逆向技术
CocoaChina
3+阅读 · 2017年7月30日
Multi-Grained Named Entity Recognition
Arxiv
6+阅读 · 2019年6月20日
Learning to Weight for Text Classification
Arxiv
8+阅读 · 2019年3月28日
Labeling Panoramas with Spherical Hourglass Networks
Arxiv
7+阅读 · 2018年4月24日
Arxiv
5+阅读 · 2018年3月28日
Arxiv
5+阅读 · 2018年3月6日
Arxiv
3+阅读 · 2017年11月21日
VIP会员
相关VIP内容
相关资讯
PC微信逆向:两种姿势教你解密数据库文件
黑客技术与网络安全
16+阅读 · 2019年8月30日
ISeeYou一款强大的社工工具
黑白之道
30+阅读 · 2019年5月17日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
可能是 Android 上最好用的写作 App
少数派
10+阅读 · 2018年12月21日
Stata绘图:简单好用的37条外部命令
R语言中文社区
25+阅读 · 2018年9月22日
刚开始学编程?这几款小工具能让你事半功倍
iOS高级调试&逆向技术
CocoaChina
3+阅读 · 2017年7月30日
相关论文
Multi-Grained Named Entity Recognition
Arxiv
6+阅读 · 2019年6月20日
Learning to Weight for Text Classification
Arxiv
8+阅读 · 2019年3月28日
Labeling Panoramas with Spherical Hourglass Networks
Arxiv
7+阅读 · 2018年4月24日
Arxiv
5+阅读 · 2018年3月28日
Arxiv
5+阅读 · 2018年3月6日
Arxiv
3+阅读 · 2017年11月21日
Top
微信扫码咨询专知VIP会员