Vim的哲学
Vim的哲学
本文记录了我在现阶段对Vim的一些思考。
我用过的开发工具
回想起来,我大概是在大一的寒假快要结束的时候接触了编程语言,我还记得自己按照教程,用gcc
编译并输出了HelloWorld
。当时,我用的是Notepad++。后来很长一段时间内我都在用。
但后来,我又知道了sublime,它比Notepad++更容易出现乱码,但是主题更好看,有更高的可定制性。于是,在某次重装系统之后,我的电脑上就只有sublime了。
期间,我也曾安装过ultraedit,但纯粹处于猎奇心理。偶尔,我也会看一些所谓程序员十大编辑器的讨论,无非就是那么几个编辑器。包括著名的Emacs VS Vim。
我对编辑器的思考
出于好奇,我开始向编辑器的顶点开进,大概上个学期,我用了一段时间Emacs,跟同学开玩笑说,自从用了Emacs,效率降了不止一倍,或许是自己不够耐心,但Emacs经常需要三个按键同时按下去真让我的手指吃不消。 其实Emacs和Vim在编辑器这一层次我认为是殊途同归,都是为了通过键盘实现尽可能多的功能,但是键盘上的按键是有限的,那么怎么办?Emacs决定,通过按键组合来拓展,比如原来有64个按键,那么只能对应64个效果,但是增减了Ctrl-C之类的组合键之后,效果则增加了$C_{64}^2$种(不精确地说),那么功能一下子就丰富了;Vim也要解决这个问题,但却另辟蹊径,引入了模式的概念,比如,INSERT模式下x就是字符x,但在NORMAL模式下x则是删除一个字符,这样效果便有$64\times2$种。 可以看到,两种策略都达到了同样的目的,但这样的代价就是用户必须非常熟练,要记住具体功能对应的按键或则其组合,对于大多数人来说,由于很少用到某些功能,所以熟练掌握是不可能的。于是像Word或者sublime这样的编辑器由于其易于入门,开始大受欢迎。 今天,程序员的数量远远超过的30年前,大多数人更愿意用sublime这样美观而开箱即用的编辑器,而Emacs和Vim则被误解、淡忘。 实际上,完全视情况而定。如果每天都需要使用编辑器,那么花一些时间来学习Emacs或者Vim绝对是值得的。 一直以来,Emacs和Vim孰优孰劣一直争论不下,有如圣战。但我看来,其实很简单。Emacs被誉为“神之编辑器”,即神用的编辑器,因为其功能强大,远远不止于编辑器,甚至被戏称为伪装成编辑器的操作系统;而Vim被誉为“编辑器之神”,说明仅仅就编辑文本而言,Vim是强于Emacs的。我自己也深有体会。
Vim是一种哲学
Vim与其说是一个编辑器,不如说是一种哲学。最简单的例子,vim使用h
、j
、k
、l
来控制方向,虽然方向键也可以,但是方向键不在主键盘区,这意味这需要手指做更多的移动,这有悖于Vim的哲学,所以不推荐。
而著名的pdf阅读器Okular就支持这种模式,通过这些快捷键而不是鼠标滚轮来控制pdf。
另一个例子是chrome上的一款插件Vimium。以下是我使用Vimium的一个截图,我将不借助鼠标(注意我鼠标的位置)打开搜索“Vim”第二页的第二条结果:
**天下武功,唯快不破。**而这就是Vim,这就是Vim的哲学。
未来
经过一段过渡期,我正式进入了Vim的世界,也深刻的理解了那句话,用过Vim你就再也不会用其他编辑器了,sublime能做的,Vim都能做,而且做的更快,更好。 IDEA同样也有支持Vim的插件。花时间,重拾这门古老的艺术!