|   |      1 
                                  43
                             [免责声明: 个人 ,我更喜欢维姆。免责声明免责声明:请继续阅读。] 
   Vim擅长于小动作:通过将动作和动作分开,并为复杂的重复动作提供便利,您可以在短时间的按键序列中执行难以置信的强大编辑操作。在正常的编辑过程中,您可以轻松地在Vim中完成一些事情,这需要您在Emacs中编写脚本。此外,您使用的大部分电源都是从机箱中提供的,因此即使您拥有广泛的
    
 归根结底,两者都不优越。它们提供不同的风格,根据你的喜好,其中一种会更适合你的个人需求和思考方式。当然,了解这两者(加上更多的编辑)总是有帮助的。但这样那样的话,你的工作效率不会明显提高。 | 
|   |      2 
                                  35
                             
 您可以在emacs中做一些事情,使其比vi更强大,但并非所有这些都与编程相关。(你可以发送电子邮件或阅读vi中的新闻吗?不,但谁在乎呢?)如果你对lisp感到满意(我不是),你也许可以编写附加组件、模式和其他东西,让你的生活更轻松,但这很可能是语法着色、括号匹配和类似的吸引眼球的东西。 我现在就不闲逛了。你的 生产率 增加使用emacs?不 :见下面我的评论。自从我贴了这个,我 有 遇到使用emacs比使用vi更高效的方法。 | 
|   |      3 
                                  29
                             vi是一把菜刀。 vim是一把非常漂亮、锋利、平衡的厨师刀。 Emacs是一把光剑。 大多数时候,我的工作要求我切菜。有时候,我不得不面对一整支机器人大军。 我已经使用Emacs 20年了。我现在正在用一个名为 "It's All Text" 这让我可以在Firefox的文本框中输入和输出文本。在Emacs中我能跑得很快。没有它,我的工作效率明显降低。 
 | 
|   |      4 
                                  27
                             根据您的编码方式,您可以 也许 促使我真正学习emacs的是它的有用功能,它可以同时打开大量文件,并且可以轻松地在它们之间切换。我正在介绍一个添加和触摸大量类的特性。(这是C++,所以每个类通常有两个文件。)因为我仍然在增强接口,所以当我意识到我需要改变另一个文件时,我通常会在更新一个文件的中间。 有了gvim,为每个文件打开一个新窗口是最容易的,这已经开始变得很麻烦了。但是,对于Emacs,在同一窗口(Ctrl-x、Ctrl-f)中打开新文件很简单。一旦Emacs打开了一个文件,就很容易在打开的缓冲区之间来回切换(Ctrl-x、Ctrl-b)。 更进一步说,单个emacs会话可能会打开多个窗口,因此除了垂直拆分窗口外,我还可以在不中断文件工作的情况下,决定在其旁边打开另一个窗口,使我能够有效地并排工作,同时仍将每个窗口保持默认的80个字符宽度。 我发现在vim中仍然有一些东西更容易(例如块选择模式、简单宏录制、差异模式),而在Emacs中则更容易(行对齐、文件/缓冲区管理、窗口/屏幕管理)。因此,根据我预期的编辑任务,我发现自己在两者之间交替(有时同时使用两者)。 如果你还不确定,我建议你试试。运行Emacs教程,然后使用它为一个上午或一天编写代码,主要依靠帮助。如果你仍然不喜欢你所看到的,就和维姆呆在一起。无论编辑器为您带来了什么,您对该工具的熟悉程度和知识都将是影响您工作效率的最重要因素。 | 
|   |      5 
                                  17
                             我不想要一场圣战,但请回答一个非常主观的问题,回答是/否。 是的,由于功能强大,您可能会看到生产力的提高。 不,您不会看到生产力的提高,因为emacs中使用的模式和隐喻可能与您的大脑不一致。 | 
|   |      6 
                                  13
                             对你的问题的简短回答是“是的”。更多细节见下文。 从1980年到1991年,我几乎只使用vi。我唯一一次不使用vi是在处理一个最小的Unix安装时,它太小了,无法包含vi,所以我不得不回到ed,它是原始vi构建的编辑功能的最小子集。 大约从1985年开始,我工作的其他程序员一直在赞美emacs。但每次我试着去学,我都走不了多远。我花了一个小时浏览emacs教程(C-HT),最后我所知道的就是如何插入和修改文本以及在屏幕上移动。我可以用vi做更多的事情,而不是在那一小时里用emacs学到的东西,以至于我无法切换。三个月后,我会抽出时间再花一个小时,最后我会读同样的材料。Emacs有一条大写字母“L”的学习曲线。直到我签订了一份其他人都使用emacs的合同,我才最终决定每次花一个多小时来学习emacs。在花了一天多一点的时间,除了完成教程和附带的文档外,我什么都不做,终于到了可以用emacs做vi做不到的事情的地步。从那时起,我再也不想回去了。我仍然可以在睡眠中键入vi命令,但我可以用emacs做更多的事情。 请理解,我是在比较emacs和vi,而不是vim。我从未了解vim添加到vi中的扩展,很可能其中许多是从emacs复制的特性。如果是这样,并且您已经精通vim,emacs可能不会为您带来那么多优势。 在emacs中,我一直依赖的东西包括: 
 | 
|   |      7 
                                  12
                             我使用Vim已经10年了,直到2年前才开始研究Emacs。我对我的生产率曲线是如何随着时间的推移而改变的有着相当新鲜的回忆。 我的观点都是有条件的,取决于你的实力和经验。 如果您使用Unix和命令行的时间足够长,并且熟悉C-a、C-e、C-n、C-p、C-k、C-y等在shell上的功能,那么在Emacs中过渡到使用这些相同的绑定(默认值)并不需要很长时间。我最近发现XCode也使用这些绑定。 
 如果您通常在许多相关文件的项目中工作,那么这种持久性在维护该缓冲区的上下文方面会带来一些额外的好处。每个缓冲区都在其打开的文件中进行了上下文扩展,以便为您的项目方便地使用各种提高生产率的工具(如grepfind、eshell、runpython和slime)。再加上文本完成,yasnippets等开始看起来很像IDE,尽管它是临时的,并且根据您的配置进行了高度个性化。这与ECB等更文明的Emacs IDE服务不同。 我的工作效率一开始就受到了影响,因为我在第一周左右的时间里不断地键入“jjkk”。接下来的一周,我小心翼翼地开始使用正确的导航键。然后我发现了配置文件。。。老实说,如果我有 Emacs Starter Kit 从一开始,我会说我的生产力在第3到第4周慢慢恢复到了平衡,但我确实进入了配置文件的兔子洞。不过,我的一位同事刚刚从vim过渡到emacs,他刚刚拿到了初学者工具包,正在路上。第一周,他看起来很舒服,享受着所有的惊喜(这种感觉可能会持续十年)。 最后,如果你犯了错误,你将立即从循环杀/拽环和撤销环中获得生产力(和信心)。我个人也是一个特定地区的观察员的粉丝。 我的简短回答是肯定的,值得花3-4周的时间来学习Emacs。即使您决定在开发中更喜欢精简的unix实用程序组合而不是Emacs,您也将从中获得一种广泛适用于编辑器之外的教育。 | 
|   |      8 
                                  10
                             Emacs文档是一个森林。当我意识到Vim的文档是多么的有条理,许多特性是多么的易读时,我从Emacs来到了Vim。我不知道Emacs专家的出路是什么,但我要警告你,学习在这方面做任何有用的事情都需要很长时间,而且不会让你在nethack方面做得更好。坚持维姆。 Textmate 是一个更好的用于Mac的Emacs,尽管这对Solaris没有帮助。Eclipse有点酷,有很多插件。 | 
|   |      9 
                                  8
                             
 
 这就是说,如果您正在开发Java,Eclipse是标准答案,因此您的问题相当没有意义。 | 
|   |      10 
                                  7
                             我对我的Vim很满意,但有一次我听说了 org-mode ,我开始学习Emacs。 | 
|   |      11 
                                  5
                             我喜欢emacs,每天都使用它。 也就是说,我不认为学习it的成本会被未来的生产率提高所弥补。 
 | 
|   |      12 
                                  4
                             我两次尝试学习Emacs。它不符合我的大脑工作方式,所以我不使用它。 Emacs(或vim)并不明显优于vim(或Emacs)。两者都有许多可供选择的选项,可以让他们做出惊人的事情。我毫不怀疑,任何可以在Emacs中完成的事情都可以在Vim中完成,只是不是标准的。 试试Emacs。看看是否更合适。这是一个不输的局面。 | 
|   |      13 
                                  3
                             我想进一步研究emacs,但我就是不能长时间使用它;我的手受伤了。我做错什么了吗? | 
|   |      14 
                                  3
                             vim和emacs是最有能力的编辑器,并且已经有相当一段时间了。 如果你真的很了解一个,我怀疑你会在这个过程中获得那么多。。。 然而,研究一下从那时起可用的插件总是一个好主意 /约翰 | 
|   |      15 
                                  3
                             
 | 
|   |      16 
                                  2
                             沿着不寻求宗教战争的路线(但如果你觉得必须的话,请投我一票),为什么你觉得vi的唯一选择是emacs?是您开发的操作系统,还是您探索的选项? Java开发环境现在享受着一些最好的IDE(免费和付费),如果在代码编辑和重构支持方面不是最好的话。IntelliJ IDEA甚至有一个vi插件,可以帮助您感觉更自在,例如(不确定Eclipse是否有类似的东西可用)。虽然改变工具确实意味着一个学习曲线,但如果这个飞跃足够大的话,花在这上面的时间可能是值得的。 | 
|   |      17 
                                  2
                             
 | 
|   |      18 
                                  2
                             一般来说,emacs比vi更强大。您可以在emacs中做更多的事情。 | 
|   |      19 
                                  1
                             如果你决定花时间编写文本编辑器,你的工作效率将会提高。在这两个编辑器中,emacs提供了更好的框架或持续定制。如果您不编写文本编辑器,只需使用舒适的文本编辑器即可。 | 
|   |      20 
                                  1
                             学习Emacs的一个很好的理由是其他程序也使用Emacs键绑定。例如,您可以在bash提示符下使用Emacs键绑定,或者使用GNU readline使用其他任何东西。学习Emacs中的基本乐章、单词/行删除和撤消/重做和弦是很好的,这样您就可以在其他程序中使用它们。即使您不再使用Emacs,您的生产力也会在这些其他工具中得到提高。 
 | 
|   |      21 
                                  1
                             在最初的几天/几周,绝对不是。 当你不再每次想编辑某个内容时都要通读教程之后-当然。。 Emacs 是 比vim更“强大”,它的脚本引擎更灵活,而且围绕emacs构建的脚本、模式和诸如此类的东西多得多。 也就是说,事实恰恰相反。。如果你花同样多的时间来提高你对vim的认识,你也会同样富有成效。。 
   也许没有同样的效率——我想说vim编辑文件更快,emacs更擅长做其他事情(同样,我个人会说
    | 
|   |      22 
                                  1
                             我同意Alan Storm的观点:“因为Emacs中使用的模式和隐喻可能与你的大脑不一致。” 这是一个非常重要的因素。不同的大脑适应不同的界面。 
   我非常喜欢Emacs的一些主要功能,而且很容易获得,我认为这些功能可以提高生产率:
    
 
 | 
|   |      23 
                                  1
                             由于vi/Vim和Emacs在它们能做什么或不能做什么方面非常接近,因此这两个编辑器的生产率来自于使用它的经验。 在我看来,作为一名程序员,一旦你开始使用Emacs,你很快就会对它有一个大致的了解。其他人只能说这么多,你必须自己尝试去了解它。 至于我,我两者都用。这就像在一场战争中使用不止一种武器,在适当的情况下使用适当的武器 | 
|   |      24 
                                  1
                             
 | 
|   |      25 
                                  1
                             免责声明: 我无知。我已经使用emacs大约4年了,使用vim大约6个月了,如果你计算一下我尝试学习和讨厌它的所有次数,可能更像15次。(写作模式和移动模式的区别让我很难受。每一次。因此,如果它没有让你难受,那么我的观点可能毫无价值。)也就是说,我认为我的观点实际上与我在这里看到的其他26种观点有着有趣的不同,所以我要表达出来。 :圆盘机 我的意见是: 
 当我需要同时理解和破解8个文件时,Emacs作为具有多缓冲区的平铺窗口管理器的属性(缓冲区与文件的对应关系为1.2:1,它们通常是相同的,但不一定是相同的)regexp search(和replace)令人难以置信。 
   如果我不喜欢一些小东西,因为
    
   Emacs的编辑命令在键入时更容易使用,这一事实使键入变得更加容易
   
   
   比Vim中的速度快。
    Org Mode (我在所有方面都使用它:待办事项列表、bug跟踪、注释、长电子邮件、文档……)在Emacs中比在Vim中更有意义(对我来说)。 而且,Elisp令人难以置信,尽管它很差劲。它完全弥补了Emacs损坏的正则表达式:您可以使用Emacs的全部功能 ,包括在多文件regexp替换中。而且 text snippets . | 
|   |      26 
                                  1
                             如果你关心 祝你双手健康 选择Vim。 我过去曾患过一次RSI,我发现其中一个主要原因是“和弦”,即同时按住多个键。Emacs广泛使用和弦,而VIM使用快速连续链接的单字母命令。在编辑器中执行命令时,由于肌肉不必扭曲和扭曲,因此手上的压力要小得多。RSI造成的伤害会破坏你的工作效率,所以在你的计算中一定要考虑到这一点。 | 
|   |      27 
                                  0
                             在我看来,如果你已经精通vi,SLIME大概是你切换到emacs的唯一原因。 | 
|   |      28 
                                  0
                             不 我已经使用emacs很多年了,我是VIM的一个转换者,我喜欢它。 
 即使您已经完全掌握了它,您额外的生产力也将主要用您可以编写的额外emacs lisp来表示。 谁在乎呢?这很有趣,lisp就是狗!如果你想“把事情做完”,那就忘了编程吧。你总是可以雇佣程序员来“做”事情。 出于生产力原因 如果您是lisp/scheme/clojure程序员。它提供了一个非常好的lisp环境,因此每次您想做任何事情时,它能节省您的几秒钟时间,这将很快为您带来真正的收益。如果您已经使用了真正的lisp,那么elisp(它与lisp的关系就像excel宏与ALGOL的关系一样)看起来就不那么陌生了。 如果您确实尝试过,请在虚拟控制台上使用它,在那里它更像是一种安排编辑器的明智方式。只有当这有意义的时候,试着在一个窗口系统下使用它,这将与之斗争。 | 
|   |      29 
                                  0
                             在早些时候的回答中,亚里士多德·帕格尔茨写道:“Vim在小范围内表现出色……在正常的编辑过程中,您可以轻松地在Vim中完成一些事情,这需要您使用Emacs编写脚本。” 在十年来一直使用vi之后,我转向了Emacs,最初我会同意这样的说法,“在正常的编辑过程中,你可以很容易地在Vim中做一些事情,这需要你在Emacs中编写脚本。”但后来我发现,通过使用Emacs的宏功能和大量重复次数,我可以很容易地让Emacs完成vi让它变得简单的几乎所有事情,还有更多。 Emacs的宏功能包括三个命令: 
   例如,在vi中,如果我想找到所有
    
   这个例子并不完美,因为它假设所有
    为了在emacs中轻松实现相同的效果,我做了以下几点: 
 它看起来很复杂,但实际上很容易打字。您可以使用这种方法来做很多vi无法做的事情,而不必使用Lisp代码。 |