关于这两个编辑器,已经有很多话要讲,但是我只补充了5便士。两位编辑都很出色,您都不会错。
我是vi / vim用户已有15年了。我已经尝试过多次转换为emacs,但是每次都只是发现vim实际上可以开箱即用地完成丢失的事情,而无需编写Lisp扩展名或安装任何东西。
对我来说,vim使您可以使用环境/ OS,而emacs尝试封装或替换它,这在编辑器中的主要区别是。例如,您可以在vim中通过:r!date在文本中添加日期,或在:r!cal 1 2014中添加日历,甚至用内容的十六进制版本替换缓冲区的内容。例如。:%!xxd,编辑十六进制,然后返回:%!xxd -r,以及其他更多用途,例如内置grep,sed等。
另一个示例是与jq
和一起使用gron
。例如。将json blob粘贴到编辑器中,然后运行以进行转换:
:r!curl -s http://interesting/api/v1/get/stuff
:%!gron | grep 'interesting' | gron -u
要么
:%!jq .path.to.stuff
上面的每个管道命令都可以通过单独运行:%!<command>
,其中%
表示所有文档,但是也可以在选择,选定的行等上运行。这里gron output
可以用作jq
路径。
您还可以获得EX批处理编辑功能,例如。替换某些单词,重新格式化代码,转换dos-> unix换行符,一次对100个文件运行宏。使用ex可以轻松完成。我不确定emacs是否有类似的东西。
换句话说,恕我直言,vim更接近于unix哲学。它通常更简单,更小,但是,如果您了解自己的操作系统和工具,则可能不需要的东西就超过了它(VIM)所能提供的。我从来没有做。
除了vi是任何unix / linux系统上的事实上的标准外,为什么还要学习使用2个做同样事情的工具。当然,有些系统提供mg或类似的东西,但绝对不是全部。Unix + Vi <3。
好吧,就是我的5便士。