做异端中的异端 – Emacs裸奔之路1: Vim vs Emacs
本文可能会引起Vim用户争执!
先说结论:
Emacs是我见到过的最强大的编辑器,功能与便利性远远超过包括Vim在内的其它编辑器。它已经是编辑器中的是天花板了。
我从2011年开始使用Vim,到去年(2023)开始转成Emacs,所以在一些发言权。
直接原因是Vim Script无法灵活使用Unicode及多字节字符的转换。
Emacs有几样Game changer的东西,很难让人拒绝:
- Elisp: 用Stallman原话描述,“我没有发现在有其它语言像lisp如此优美” Elisp,是lisp的一个方言,像lisp一样,是一门正经编程语言。
- Org Mode: 刚开始你可能觉得它就是另一个Markdown,实事上它最强大的是它背后的elisp api, 光org.el一个文件就有20,000+行代码,这些API完成不可思议的功能,如果移动整个子树,展开或者折叠子树。
- TRAMP: 可以远程在Emacs中打开远程文件,目录甚至Shell
- Magit: 对我而言这谈不上Game changer, 所为git bash已经很方便,用Magit只减少Emacs与Bash窗口之前的切换。
Emacs功能上要强很多,Elisp比Vim Script优秀,而且优美,你可以用hypen命名变量与函数。
比如: buffer-name, parse-one-token
比驼峰命名及under score要优美多了。
而且,hypen, 更加容易输入,更加便利。
Emacs的按键绑定并不比Vim差.
唯一一点Vim能取胜的就是,Vim使用点号重复上次编辑命令,
Emacs要显式录制宏要完成这个功能。
另外,原生的Emacs补全时,不像Vim一样用菜单下拉显示,所以不清楚候选是什么.