Front-end Developer / Music Producer
👨‍💻 2019-11-11

在网上看过一个笑话:

问:如何生成一个随机字符串?

答:让新手退出vim

用过Vim的人肯定一眼就能Get到笑点,因为Vim的反人类设计,你需要在键盘上打出:q才能退出。但是作为一个老牌的文本编辑器,其地位在很多程序员心中的地位是不可撼动的,很多Linux 发行版也都是自带Vim,用来临时修改一下服务器上的文件非常方便。

因为第一次也遇到了进入Vim退不出去的尴尬情景,我决定去谷歌一下Vim怎么用,看到某大牛写的Vim教程我是懵逼的,因为真的太多东西要学了,一张网页,上万px的高度,几乎键盘上每一个按键都有它的作用,大小写不一样,作用也不一样,还有组合键和命令。即使到现在,我也只记得大约5%的快捷键和命令。但是我觉得如果你只是用来编辑一些简单的文件,比如HTML里面改个标签,CSS里面改个高度这种小活,5%可以说是非常够了。

在终端打出vim然后回车,来看一下他的界面吧:

image-20191111174728567

问:作为一个程序员,你最喜欢的代码编辑器是什么?

答:乌干达

界面很简洁,但是其反人类的设计,会让你有点不相信打:help能出帮助文档。

Vim有五种模式:

  • 正常模式
  • 插入模式
  • 命令模式
  • 视图模式
  • Ex模式 (~~前女友模式~~)

作为初学者,你可能并不明白为什么Vim要设计“模式”这种东西,时间一长你就会发现:你还是不懂;but whatever

正常模式

刚进入vim的界面就是正常模式。从技术上来讲,所有的按键在这个模式下都是快捷键。(雾

插入模式

在插入模式下,Vim的表现和Windows的记事本一样,yeah that's how you can type...so

命令模式

在正常模式按下:就可以进入命令模式。

按下Enter执行命令,执行完命令后,Vim会默认回到正常模式,如果没有也同样可以按下esc

视图模式

在这个模式下,移动光标会选中文字,很像鼠标操作。

Ex模式

Wikipedia:

这和命令行模式比较相似,在使用":visual"命令离开Ex模式前,可以一次执行多条命令。

反正我是没看懂...


Yeah all the crap you just said, I still don't know how to type in this fucking thing!

不说废话了,其实想要快乐的和Vim玩耍,只需要记住以下几条:

  • 命令vim test.html打开该文件进行编辑,如果没有该文件,在保存后,Vim会新建该文件。

  • 如果你想打字的话,在正常模式按下i键就可以进入♂插入模式Insert Mode ,在插入模式下才能打字

  • 如果你想保存文件就按下:w,强制保存是:w!,保存并退出 :wq,强制保存退出:wq!,强制退出:q!

  • 撤销修改是在正常模式按下u

  • 重做是在正常模式按下ctrl+r

  • 跳到具体的某一行可以在正常模式下按下:进入命令模式,后面跟上你想要定位到的行号 :12138

  • 查找是在正常模式下按下/,后面跟上你想要查找的字符/myFunktion,按下Enter会进入第一个查找结果,按下n显示下一条搜索结果,按下N显示上一条搜索结果。

  • 全局替换是:%s/youSearchText/yourReplacement,如果想在每次替换时需要确认可以在命令后面加上/c,于是就变成了:%s/youSearchText/yourReplacement/c

以上。

说是教程,其实更像是一个导览?如果你对Vim真的特别感兴趣,可以去看看这些比较详尽的文档: