RT @http://blah.blogsome.com/2007/07/29/p44/

最近纠结在是否要重拾 Emacs。诱因是 非著名程序员 改用 Emacs 了。

用 VIM 已经不少年了,最开始的两年只是 ssh 登上服务器后用 VIM 作一些简单的编辑, 后来转到 Linux 桌面后的几年开始使用 VIM 作为日常编辑开发工具。如果把 VIM 用户分 为新手、高手、专家、作者四个级别的话,我怎么也应该算是高手级别了。让我现在放弃 VIM 改用 Emacs,好比高考失利后从小学开始重读 12 年,人生能有几个 12 年?

在看到碎碎念这篇博客之前,我自己给自己简单分析了一下

  • VIM 区分编辑模式和普通模式,在普通模式下我可以单手在源码中自由跳转浏览,这点 Emacs 肯定是做不到的。不换 +1
  • Emacs 可以自豪的说:“作一个 IDE,我们更专业”,VIM 在这点上稍显不足。换吧 -1
  • VIM 内置在各种发行版,但很少有发行版会内置 Emacs,远程登录时这点表现的更为强 烈。不换 +1
  • Emacs 可以实现开发工具的大一统,但我用的是平铺式窗口管理器,如果所有应用都集 中在一个窗口,还要平铺干吗?不换 +1
  • Emacs ?换吧 -1

分析的结果:不换。今天了解了 VIM 背后的开发理念后,更加坚定了我的想法:

  • Vim 的目标是成为一个更好的 Vi 而不是一个全新的编辑器。
  • 尽可能地使用键盘,因为大数人没有第三只手握鼠标。
  • 减少使用控制键的使用,因为按控制键不方便。
  • 要能支持多种不同的终端、平台、多种编译器和库。尽可能的在多平台间保持外观和功 能上的一致。除非确实是很酷的功能否则不要开发某平台独有的功能。
  • 新的功能都要带有完整的文档。
  • 体积要小,速度要快。确保 Vim 只用少量的系统资源,让旧的机子也能用 Vim。
  • 有些用户使用低带宽的网络连接,要减少网络通讯量。
  • 用户拥有定制的自由,包括可以选择去除那些带来体积增加却又不是大多数人用得上的 功能。
  • Vim 的目标是方便高效地与其他程序协作,而不是代替所有其他程序。Vim 的定位是系 统的组件之一,而不是一个包罗所有功能的巨大程序。
  • Vim 不是一个 shell(交互式命令行解释器/控制台/命令提示符)也不是一个操作系统 。所以你没法在 Vim 中开一个 shell 或用 Vim 去控制 debugger。
  • Vim 不会为了更华美的外观而牺牲其外观在不同平台的一致性。
  • 原则上欢迎添加任意功能(除非与其他原则相抵触XD)。