vim和emacs
在编程界一直有两大神器的传说。这两大神器一个是emacs,一个是vim。一个是神的编辑器,一个是编辑器之神。
程序员的圈子里面也一直流传着一个段子,说是世界上的程序员分为三种。使用vim的,使用emacs的,以及使用其他的。
为什么vim和emacs能得到如此推崇呢?
emacs
emacs的封神是因为其高度的可扩展性,你可以用vim打游戏,听歌,画画,上网,收发e-mail,代替tty,甚至控制你们家咖啡机煮咖啡。
emacs基于lisp语言解释器,其强大之处几乎混淆了操作系统和文本编辑器的界限,只要你打开emacs,你就可以呆在里面不用出来了,它可以完成你的几乎所有操作,而且只用键盘的主要部分。
vim
vim的封神是因为其定位到极致的设计哲学,vim是一个文本编辑器,它就是一个文本编辑器,当然它也可以扩展出很多的插件,但是基本都是第三方的,vim 官方从始至终的的设计理念就是让编辑高效,高效,高 效,更高效。
vim 的每一个设计都是为了能够把工作效率推到极致。 甚至于现在vim的编辑方式都已经成了一种哲学————vs-code、vs、atom、sublime、intellijidea。。。。。所有的主流ide,甚至圣战的另一方emacs,都提供了vim的输入模式。
因为vim的输入方式实在是太高效了,至少现在,还没有任何一个其他的输入方式能与vim方式媲美——曾经人们认为emacs的组合键方式可以,emacs的快捷键也确实比普通编辑器提高了很多效率,但是在单文件的极限效率上,却真的和vim差的不是一点半点。
我的个人态度
这两个编辑器各有所长,但是我个人是vim党派,一方面vim是我先接触的编辑器,我已将比较熟练,另一方面,我个人偏向于轻量高效纯粹极简,vim的设计哲学更得我心。
emacs什么都能干,但是也真的什么都不专业。 我不需要用文本编辑器来收邮件,我也不想用Emacs粗陋的浏览器功能来日常上网。 从根本上我不需要一个 all in one的环境。
我有gmail、chrome、以及vim。它们都很好用,专注于自己的功能,在自己的方面做到了极致。因此我不需要emacs。
总结
说了这么多不是说要求大家都像我一样使用vim啊。也不是说一定要求大家必须使用vim和emacs。
但是随着咱们之后在技术上在linux上越走越深越走越多,图形操作越来越少,指令操作和编程越来越多,脚本配置越来越多,不管你选哪个文本编辑器,必须至少得会一个,因为tty不支持鼠标,linux的很多配置也指定必须使用文本编辑器。
当然,nano、cat字符流也是很好的文本编辑器,对新人友好而且易上手。也可以列为备选的选项。不过我个人还是希望大家有能力学习vim或者emacs的话学习一下vim和emacs。
尤其是vim,作为一个已经有五六十年历史却没有被淘汰,而且随着更新换代得到越来越多人认可,甚至被称为输入哲学,被所有主流ide都采用的输入方式,必然是有其独到之处的。
既然学哪个文本编辑器都是从头学,那么不妨学个好一些的,虽然稍微费力点,但是收益也更大些,不是吗