VIM——缘起

玉簪花

MacTalk新增加了不少读者,如果你想学习一些 Mac 使用技巧和技术,建议通过 m 查看目录,从头看起,因为早期的几十篇文章中包含了大量的使用 Tips 和 Tricks,有心之人自有收获。

这次出差非常奇葩的没带电源,由于 iPhone 和 iPad 都可以通过Mac 充电,我外出一般只带 Mac 电源,此源一绝,基本上所有电子设备就都没有粮草了,当真是「此恨绵绵有绝期」。后果就是我开始极其吝啬的使用那块 Mac 电池和 iPhone 备用电池的配额,能用 iPad 就不用 Mac,能用 iPhone 就不使Pad,Mac 只用来写长邮件和产品演示,另外负责给 iPhone 充电。那篇「老兵不死,只能自我提升」自然是在 Mac 上完成的,不过由于很早就构思了这个主题,再加上电池的压力,写起来真是倚马可待,一气呵成,成文之后居然好评多多,也算奇事。回京的时候Mac 和 Pad 都已「筋疲力竭」,只有 iPhone 还有60%的电量,真是险到极点!

从湿漉漉的广州回来,兜头遭遇一盆大雨,大雨过后,整个京城变得清凉干爽,俗话说,环保基本靠风,清洁基本靠雨,此言非虚。傍晚从办公室出来,满园的白玉簪花散发出淡淡清香,碧叶莹润,花色如玉,新鲜的雨珠还挂在绿叶和白花上,一点一点,晶莹剔透,折射着夕阳的余晖,闪闪烁烁,煞是好看。

最近不断有 vim 的关键词在微信后台的回复中出现,好把,今天就开始给 Vim 系列搬家。

操作系统、编程语言和编辑器是程序员永恒的吐槽话题,技术发展了几十年,争论起来依然是「此恨绵绵无绝期」。在文本编辑器领域,Vim 和 Emacs 是永恒的焦点。我在「如何学习一门编程语言」里写道,「Emacs和Vim程序猿,大家沿着不同的道路和目标前进,但总是会在某个点交叉相遇,见面就扔石头和臭鸡蛋,砸得对方鼻青脸肿,然后擦擦眼泪和口水继续前行」。你们就知道,编程其实是个危险的工作,当真不是瞎扯。

工作十几年来我用过各种编程工具,用错过,也用对过,虽然每种优秀的编辑器都有传奇的故事,每个程序员都有自己的脾气,但这一次,我只想写一写 Vim……

为什么 Vim 总会和 Emacs 相提并论呢?因为 Vim 号称编辑器之神,Emacs 则是神的编辑器;Vim 编程唯快不破,插件遍天下,Emacs 则宣称自己是伪装成文本编辑器的操作系统,所谓针尖对麦芒,就是这样的效果,写完 Vim 这个系列,我希望还有机会写写 Emacs。

缘起


我从2000年开始接触 Vim,当时正值第一波互联网浪潮,我刚毕业不久,一如现在的热血青年,投身到互联网的大熔炉中(当然和现在的互联网弄潮儿不一样的,当年我们大部分都被熔掉了)。

当时的公司聚集了很多清华北大的兄弟,技术牛人扎堆,大家清一色使用 Vim 在服务器端编程,语法高亮都不设,内部BBS也是水木清华那种,通过终端访问,非常高端大气。走进办公室一眼望去,满目皆是黑漆漆的屏,绿瓦瓦的字,每个人都在那里噼噼啪啪的敲击键盘,韵律十足,我想,这简直酷毙了!

当时我还在使用 Editplus 编程,隶属菜鸟帮。别人的开发、编译和发布环境都在服务器端,而我则需要在本地编写好程序,通过 Editplus 的 ftp 功能上传到服务器端,再进行调试、测试和发布,非常麻烦。

所谓文人相轻,我这种行为遭到了小伙伴的无情嘲讽,当年的 Mac 君只好眼泪往肚子里咽,把愤怒都发泄在键盘上,每天在满天星斗的夜色中学习 Vim 技法,在清晨的微光中编译 Linux 内核,上午敲打键盘输出 Perl 程序,中午吃完五又四分之一口米饭之后开始研习 Vim 的多窗口和标签……由于单身住在公司,时间充裕到让你不好意思,很快小成,编码时鼠标锁进抽屉,双手敲击键盘上下翻飞,成就感十足,我对语法高亮情有独钟,经常把自己的界面配置的花花绿绿,没事看看也是件乐事。

自此以后,与 Vim 结下不解之缘,十几年过去了,工作一直没有离开过Vim,断断续续一直在用。到了2009年,我开始把工作环境完全切换到了 Mac 上,记得当时打开 Mac 的终端时,欣喜若狂的想,这不就是 Vim、Shell 和 IDE 的完美集成么?

场景


在不同的场景下采用最合适的工具,永远是最佳选择。这是就会有人问,Vim 适合什么场景呢?简单说来,Vim 比较适合 Unix/Linux 服务器端编程,当然这因人而异。我个人使用 Vim 主要用来进行 Shell/Python/C 编程。在 Unix/Linux 服务器端编辑和修改文件也离不开Vim,另外由于我个人工作环境是 Mac,所以改个文本文件查个代码的,也就用 Vim 顺手做了。

与很多程序员交流,大家会认为不用 Vim 一样能修改服务器端的文件,ftp拉下来,改好了再传上去。这当然是一种方案,但不是最优方案。而且极端情况下需要直接在客户服务器上解决问题,你总不能说「骚瑞,Sir,我不会在Linux下编辑文件,Down一份下来先」?这就像用Vim编写 Markdown 文件一样,能不能用,当然可以,甚至有人已经为 Vim 开发了 Markdown 插件,可以编写时通过快捷键查看转换的HTML文本,但是显然不如Mou/Byword。

编写 JavaEE、HTML/CSS/JS、Objective-C,最优方案可能是Eclipse、IDEA、XCode等,这些优秀的工具可以帮助我们提升效率,减少错误,但是如果你还想更进一步,那么Vim绝对值得拥有。

Vim用了很多年,也总结果过很多次,但不完整,我想这次在 MacTalk 能有始有终,完成这个系列。网络上介绍Vim的文章浩如烟海,各种精巧的用法数不胜数,看起来还是比较费时费力。Vim本身开箱即用,什么都不配置也可以使用其基本功能,如果大家掌握了基本操作,以下内容可以帮助提升效率,打造你的专属Vim。

待续……


*文章内容来自微信公众账号:MacTalk · 微信号:sagacity-mac · 回复 m 可以查阅所有历史文章和Mac Tips · 网站:https://macshuo.com

如果希望持续听MacTalk,点击{阅读原文}对作者进行小额赞助

10 thoughts on “VIM——缘起

  1. 对玩网站,自己搭建服务器的童鞋来说,VIM是一个必须掌握的工具。配置各种软件和服务器都离不开VIM的支持,真正会用之后,纯文本编辑器还是比GUI 编辑器效率高! Emacs 不少我等骚年用的了的

回复 Danny羽沐风 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注