用 Vim 吗?退不出来那种
程序员最喜欢讨论各自的编辑器,我最推荐的是啥呢,肯定是 Vim。
基本上,你可以在所有的平台和环境中用 Vim 干活。
Vim 号称编辑器之神,唯快不破,可扩展,插件遍天下。学习曲线虽然陡峭,但是学成之后,基本上就成肌肉记忆了,写程序双手不离键盘,上下翻飞,可谓快意编程。
不过学 Vim 并不是那么容易。最常见的笑话就是,在命令行输入 vim,然后就永远退不出去了……最后只好关上整个终端。因为退出 vim 的命令是 :q
那我和 Vim 怎么结缘的呢?那得从 2000 年说起。20 年前……
缘起
当时正值第一波互联网浪潮,我刚毕业不久,一如现在的热血青年,投身到互联网的大熔炉中。我所在的公司叫洪恩教育,公司里聚集了很多清华北大的同学,技术牛人扎堆,大家清一色使用 Vim 在服务器端编程,语法高亮都不设,内部 BBS 也是水木清华那种,通过终端访问,非常极客。走进办公室一眼望去,满目皆是黑漆漆的屏,绿瓦瓦的字,每个人都在那里噼噼啪啪的敲击键盘,韵律十足,我想,这简直酷毙了。
你看,水木清华也是一种生活方式。
我最初还在使用 Editplus 编程,隶属菜鸟帮。别人的开发、编译和发布环境都在服务器端,而我则需要在本地编写好程序,通过 Editplus 的 ftp 功能上传到服务器端,再进行调试、测试和发布,不仅麻烦,而且不够酷。
那时候不酷是不行的,我这种行为遭到了小伙伴的无情嘲讽,于是我把愤怒都发泄在键盘上,每天在满天星斗的夜色中学习 Vim 技法,在清晨的微光中编译 Linux 内核,上午敲打键盘输出 Perl 程序,中午吃完五又四分之一口米饭之后开始研习 Vim 的多窗口和标签……
自此以后,我就与 Vim 结下不解之缘,十几年过去了,工作中一直没有离开过Vim,断断续续一直在用。到了2009年,我开始把工作环境完全切换到了 Mac 上,记得当时打开 Mac 的终端时,欣喜若狂的想,这不就是 Vim、Shell 和 IDE 的完美集成么?
场景
我们在不同的场景下应该采用适用的工具。这时就会有人问,Vim 适合什么场景呢?
简单说来,Vim 比较适合 Unix/Linux 服务器端编程,如果你使用 Mac 电脑,Vim 是直接集成在你的终端环境中的,用起来十分方便。我以前用 Vim 主要用来进行 Shell/Python/C 编程。在 Unix/Linux 服务器端编辑和修改文件也离不开Vim,另外由于我个人工作环境是 Mac,所以修改文本文件、Code Reiview、批量替换文件、比对文件等工作,用 Vim 顺手就做了。
写 Java 程序、前端的 HTML/CSS/JS、Objective-C 和 Swift,最优方案依次是 IDEA、VS Code、XCode 等,这些优秀的工具可以帮助我们提升效率,减少错误,但是如果你还想更进一步,那么 Vim 绝对值得拥有。
事实上,这些编辑器内部全部内置了 Vim 编程模式,或者有 Vim 插件扩展。可谓一通百通。
理念
Vim 是一款完全面向程序员的软件,我很少见到用 Vim 编辑文字的普通用户,如果你是,你一定要告诉我。
写过程序的人都知道,编程的时候双手大部分时间都放在键盘上,或编码、或插入、或移动、或定位、或查找,这种连续操作的时间和频率远远大于阅读、翻页、设置字体、摆弄样式等文案工作,而二者往往产生很多停顿和间隙,而编程时的停顿是非常影响编程效率的,所以 Vim 的设计理念就是通过模式的转换、命令的组合和数以万计的插件,保证程序员在编程的过程中,双手尽可能保留在键盘中央的区域,并且,不需要鼠标。
Vim 的模式和普通的编辑器有所不同,而且命令繁多千变万化,所以初期的学习曲线较高,一旦你坚持练习并且度过了最早的平台期,就会领略 Vim 的妙和全键盘的好。事实上 Vim 除了能够快速编辑文本文件之外,还能够通过简单的命令做更多的事情。
如何帮助你度过这个陡峭的学习曲线呢?这就是极客时间开设 Vim 专栏的初衷,吴咏炜老师是前英特尔亚太研发中心资深系统架构师,是《现代 C++ 实战 30 讲》的专栏作者,也是一位深度 Vim 用户。
他会带着你掌握即学即用的 Vim 高频命令,了解 Vim 高阶用法和技巧,利用 Vim 脚本和插件实现常用功能,以及定制自己专属的 Vim 环境。
一旦你跟着吴老师学完了专栏,真正掌握了 Vim 这个高效率的工具,你会进入一个全新的世界,以前繁琐的编程和文本处理会变得简单有趣,如果你有兴趣,完全可以根据专栏所学的内容,定制一个强大的个性化开发工具,提升自己编程和日常工作效率。一起开始学习吧,我发现专栏还有很多我没掌握的知识呢。
为大家申请了一个价值 10 元 的优惠口令 vimgogogo,支付时可以使用,到手 69 元,祝你也成为 Vim 高手。
点击原文可以试读。