来自一个不喜欢用Vim的弱鸡程序员的Vim教程

1021 words, 5 minutes to read / November 11, 2019 / Deprecated

在网上看过一个笑话:

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

答:让新手退出 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 真的特别感兴趣,可以去看看这些比较详尽的文档: