Emacs会让我成为更好的程序员吗?

时间:2009-01-27 20:38:56

标签: emacs text-editor vi

Steve Yegge写了a comment on his blog

  

所有最伟大的工程师   世界使用Emacs。改变世界的人   类型。不是立方体中的伟大gal   在你旁边。不是弗雷德,这个了不起的人   走下大厅。我在谈论   我们最优秀的软件开发者   专业,谁改变了   面对这个行业。詹姆斯   高斯林,唐纳德克努斯,保罗   Grahams,Jamie Zawinskis,   埃里克本森斯。真正的工程师用   Emacs的。你必须聪明地使用   它很好,它让你难以置信   强大,如果你能掌握它。去看看   在Paul Nordstrom的肩膀上   如果你不这样做,他有时会工作   相信我。这真是令人大开眼界   有人用过Visual Blub   类似.NET的IDE整个职业生涯。

     

Emacs是100年的编辑。

上一次我使用文本编辑器编写代码时,大约1000年前我还在记事本中编写HTML。从那时起,我一直或多或少依赖IDE,在我的整个职业生涯中使用过Visual Studio,NetBeans,IntelliJ,Borland / Codegear Studio和Eclipse。

为了它的价值,我已经尝试了Emacs,而我的经验令人沮丧,因为它完全缺乏开箱即用的可发现功能。 (显然有一个用于发现其他Emacs命令的Emacs命令,顺便说一句我找不到它 - 就像生活在你自己残酷的禅宗般的笑话中一样。)我试着让自己像这个程序好一个月,但最终决定我宁愿拖放GUI设计师,智能感知和交互式调试。

很难将事实与狂热主义分开,所以我不愿意接受Yegge的评论。

依赖IDE的人与那些不依赖IDE的人之间在技能,工作效率或编程乐趣方面是否存在可测量的差异,或者只是狂热主义?

39 个答案:

答案 0 :(得分:121)

首先让我说,我自称是对Emacs崇拜的真正信徒。

那就是说,博客是疯子。你写的是有用的东西。我发现Emacs对我很有帮助,主要是因为我花了大学时间预先支付了学习如何根据我的需要修改它的启动成本,并根据自己的需要修改自己。

但是其他人以不同的方式做事,并且他们说“那没关系”。

答案 1 :(得分:103)

他(Steve Yegge)在其他帖子中详细阐述了这一点。 http://steve-yegge.blogspot.com/2008_04_01_archive.html可能是最全面的,但信息被埋在那里,因为它与主要主题相切。

我想总结一下:那些只是主管的程序员会选择一个IDE,并且能够很好地了解它,并且可能做得还不错,但他们会将自己局限于IDE为他们提供的内容。换句话说,他们适应IDE。另一方面,伟大的程序员将调整他们的环境以适应他们自己,例如编写脚本或他们自己的工具,或者扩展他们的工具。到最后一点,不仅Emacs是可扩展的环境,它也是扩展的最简单的环境,它是你收获的环境扩展它的最大好处 - 您的扩展集成到Emacs中,就像它们是库存功能一样,因此您未来的扩展可能建立在您之前的扩展上(正反馈循环类型)。 / p>

答案 2 :(得分:56)

最好的程序员使用vi或emacs,因为最有经验的程序员是最好的,而20年前,除了vi和emacs之外别无选择。

在使用非常慢的文本终端的机器上开始使用vi(大约1987年)之后,我在几年后(在更快的机器上)转换为(GNU)Emacs,并且几乎专门使用它近10年

Emacs是第一个真正集成的开发环境 - 整个编辑/链接/编译周期可以在emacs中控制,你可以为你使用的任何编译器自己动手。

如今,像eclipse这样的IDE甚至可以更好地集成(说实话:emacs糟透了图形),但Emacs仍然是“纯”文本编辑的最佳环境之一。

答案 3 :(得分:34)

提高您的清晰思考和解决问题的能力将使您成为更好的程序员。没有程序可以做到这一点。

使用更好的锤子不会帮助我建造更好的房子,除非我知道如何以及为什么。 ;)

答案 4 :(得分:21)

Yegge需要见到Bill Joy。他不仅是世界上最伟大的程序员之一,还写了大量的vi。在vi。

短暂可耻的忏悔:在使用vi(和近年来的vim / gvim)20年后,在过去一年左右的时间里,我开始使用Eclipse进行java编辑(以及Thunderbird for email),尽管在我的当前的工作我的机器有很少的内存,我通常使用vi,除非我需要调试器。

答案 5 :(得分:13)

  

依赖IDE的人与那些不依赖IDE的人之间在技能,工作效率或编程乐趣方面是否存在可测量的差异,或者仅仅是狂热主义?

让我们把它缩小到Visual Studio vs. Emacs ---问题太宽泛了,我怀疑大多数人(至少在StackOverflow这里)熟悉这两个人。 [我是,我使用并更喜欢emacs]

接下来,让我们打破问题的三个组成部分。

编程享受归结为主要喜欢编程本身,其次是当你这样做时不会出现烦恼因素。使用您所挣扎的工具将从享受中减去。因此,我猜,通过使用您喜欢和熟悉的工具,可以最大限度地享受乐趣。

当然,一旦你熟悉了一个新工具,你可能会发现你更喜欢这个工具,因此如果用你的 new 收藏工具做更多编程,你会更喜欢编程。我不清楚,当他们熟悉VS时,人们通常会喜欢VS而不是emacs(反之亦然)。

接下来,编程技巧。如果技能和VS / emacs的选择之间存在任何联系,我认为这是引起选择的技能,而不是引起技能的选择。根据我的经验,{VS,emacs}似乎没有让我学到任何关于编写更好的代码的知识。

一个好的工具可以让我能够在较短的时间内编写相同的代码(以及相同的质量代码);如果我们假设productivity = quality of code `times` code per time,那么任何能让你在更短的时间内编写好代码的编辑都能提高生产力。

我可能对VS太熟悉了,但在这里我认为emacs有一些我在VS中找不到的优势。这可能听起来很荒谬,但像Ctrl-[fbnp]一样简单的光标移动是一个真正的好处 - 这意味着你不必将手移到箭头键上。另一件事:你可以进行搜索或替换,其中包括换行符,我经常使用它,我不想错过它。

我喜欢的另一件事是能够在我的编辑器中嵌入shell。根据我的经验,它在非Windows平台上更有价值(我的第一次“编程”体验,IIRC,正在编写DOS .bat文件,所以我不只是一个火红的粉丝),但在这些平台上它是一个巨大的胜利。它使emacs与“一切”“集成”(使用find / locate进行文件搜索,使用grep进行文本搜索,使用svn / git / hg / ...进行版本控制,并将其命名)。

最终判决 - 您是否应该学习emacs?这都是狂热主义吗?如果你有时间,我会说总是值得学习做同样事情的新方法,因为新的方式可能会更好地为你工作。而且我鼓励你不要拒绝它,因为当你刚接触它时它似乎是什么。从这个意义上来说,就像切换到Dvorak键盘布局一样:起初你的速度较慢,但​​是一旦你加速,你可能至少和qwerty一样快,而且更舒服。我也推荐使用相同的方法学习新的(编程)语言:因为你不懂词汇(标准库),说事情很难,但奖励仍然存在,等待着你。

答案 6 :(得分:10)

引用的文字开头“世界上所有最伟大的工程师都使用Emacs”,我也不会把它看作是面值。他是否了解世界上所有最伟大的工程师?这是你或我拥有的世界上最伟大的工程师名单吗?

一旦学会了,像EMACS或vi这样强大的编辑器会让你更有效率,或者如果碰巧没有你最喜欢的IDE就会更有效率。

这是“曾经学过”的部分,是杀手。有效地使用这些工具是很多工作和实践,而且在开始时非常困难。

答案 7 :(得分:9)

我个人是Emacs的粉丝,但Emacs只是一个工具。它不会让你成为一个更好的程序员,而不是一个超级花哨的笔会让你成为一个更好的作家。

澄清“伟大的程序员”将自己的环境适应自己可能有一些优点,但很多工具可以做到这一点(例如vim和SlickEdit),所以在这方面没有什么特别关于Emacs。

我认为最有可能的是“伟大的程序员”对编程充满热情,对此充满热情的人往往会找到有助于激发这种激情的工具。 Emacs(以及vim和SlickEdit等)就是这样一个工具。

答案 8 :(得分:8)

我不相信存在差异,更多的是偏好问题。

然而,我注意到,您编码的时间越长,或者您编码的级别越低,您使用emacs或vi的可能性就越大。

答案 9 :(得分:8)

虽然IDE在过去十年中已经变得更好,但它们仍然包含一些安全的“泡沫”编程,远离一些丑陋的细节。往往会发生这种情况,即抽象的增加允许更多程序员在知识较少的情况下做得更多。当然,这并不适用于所有程序员,但更简单的工具确实可以为更广泛的受众带来编程。

更多关于低级工具的知识,通常可以转化为代码中的更多稳定性,因为意外地“反对谷物”的可能性较小。将EMACS列为唯一的领先指标是不公平的,因为它来自各种语言和工具,而且更多的是理解的深度,而不是特定的技术。

回过头来看,您要么在UNIX机器上学习VI或EMACS,要么专门研究PC(好的,还有VMS,CMS,AS400等,但这些都是旧技术)。这两个流程吸引了非常热衷的人,但UNIX人员倾向于想要一个复杂的解决方案,而PC人员只是希望它能够快速完成。文化差异很大。

答案 10 :(得分:7)

IMHO IDE倾向于针对特定平台或语言或操作系统进行优化:Eclipse JDT非常适合Java,Visual Studio是以C ++ / .NET为中心的等等。如果你是的话,它们可以帮助提高生产力(再次恕我直言)只在这个平台上工作,但是如果你改变平台,你必须基本上学习一个新的IDE(或至少一组新的插件,视图,透视图,我不知道Eclipse还有什么)。

了解emacs,Textmate或vim(我的个人偏好)或任何通用编辑器的优势在于,无论您在哪个平台上编写,您在该编辑器中获得的技能都适用对于。它们针对编辑文本进行了优化,一旦掌握了它们,您就可以用任何语言高效地编辑文本。

也有Yegge断言伟大的程序员将他们的工具调整到他们的工作方式而不是相反。我认为这是通用编辑器的一个胜利,因为你自定义了一个编辑器,而不是必须弄清楚如何使四个不同的IDE适应所有行为。

答案 11 :(得分:6)

我认为最好的程序员往往会花时间定制他们的环境,让他们更快/更容易地执行他们可能会做的任务。在定制环境时,Emacs是最强大的编辑器之一。它有一个陡峭的学习曲线,但是,一旦你过去了,你可以为它做的事情几乎没有限制。

有人曾经说过最好的程序员是懒人;那些,一旦他们需要不止一次做某事,就找到一种自动化方法,这样就可以减少工作量。 Emacs让你变得非常非常懒惰;)

答案 12 :(得分:4)

我从一开始就使用IDE(可以说是;已经开始使用QBASIC),并且已经使用了很多年。我现在几乎完全切换到VIM(各种风格)用于我的所有开发工作,我不后悔。我的生产力肯定增加了。

当然,没有任何东西可以取代Visual Studio中的Windows窗体设计器。但与VIM(和Emacs,我相信)相比,Visual Studio中的文本编辑器真的很糟糕。一旦利用了控制台的原始功能和GNU开发人员工具(我的意思是make,GCC,binutilsgdb,然后是一些),您会发现这些工具可能看起来很原始,但它们正好相反,实际上提供了IDE提供的所有工具(除了表单设计器之外)。

当你第一次开始使用这些工具时,你面前有一个非常陡峭的攀登,而且激励可能很小。我很幸运(?)被迫使用这些工具,所以我没有选择我可以狡猾的。

答案 13 :(得分:3)

我在大约一年半前开始使用Emacs,因为它是几个想要的汇合 - 希望使用正则表达式(在支持它们的编辑器中),想学习lisp,想要更好编辑器。

使用正则表达式编辑我的代码教会了我很多关于在代码中查找模式的知识。按键需要一段时间才能习惯,但是没有鼠标我飞得更快。

Emacs让我能够在同一个应用程序中继续使用我的笔记和编码 - 最小化的上下文切换意味着最少的大脑切换,我可以专注于手头的任务。

答案 14 :(得分:3)

没有。如果您认为使用emacs可以让您成为更好的程序员,那么您会感到困惑。

但我每天都会使用它。我发现使用emacs + maven比使用Eclipse进行java开发更有效率(尽管我仍然不时地启动Eclipse以进行偶尔的重构或调试会话)。

这些是我的理由:

  • emacs中的实际文本编辑体验胜过其他所有内容。令人惊讶的是,只使用键盘,你能以多快的速度完成任务。 Eclipse更像是面向鼠标,当你打字时会遇到很多恼人的障碍。
  • 能够使用elisp自定义emacs非常强大。我甚至会说,如果你没有花时间学习基本的elisp并定制你的环境,你就是在浪费你的时间。
  • 在文本编辑器中,您可能想要做任何事情的扩展。

答案 15 :(得分:3)

就个人而言,我觉得你应该使用任何能让你更有效率的东西。如果你没有时间投资一个项目来学习和学习Emacs,那么那时你的时间可能不是最好的。

但是,我觉得当你有足够的时间来了解其他IDE是个好主意。我在日常工作中使用Visual Studio,但在家里我使用Eclipse进行小项目并且也使用过Emacs。在我考虑使用Emacs的特定点上,我的努力更好地完成了实际的工作,而不是减慢自己与Emacs的摔跤。

我认为在某种程度上认为所有最优秀的程序员都使用Emacs是荒谬的。有许多令人惊讶的程序员不喜欢使用Emacs而非流行(或可能是人声)。

答案 16 :(得分:3)

对我来说,我选择Emacs而不是IDE的主要原因是因为它允许我从键盘上做所有事情。这很好,因为它节省了我通常使用鼠标的时间。此外,由于我发现自己非常灵活,我倾向于因为使用慢速触摸板而使编程“凹槽”中断。此外,它的定制使我对一些IDE大放异彩。但是,如果您发现自己使用IDE编程速度足够快,那么我会说Emacs的学习曲线不值得。

答案 17 :(得分:3)

没有。好的代码可以让你成为更好的程序员。

尽管如此,良好的文本操作是提高效率的关键。无论是vim还是emacs都会改变你使用文本的方式 - 两者都被证明是有效的,但在风格上几乎相互矛盾。此外,这个争论相当陈旧(回到80年代和90年代,其中文本 - >编译器是关键),因此有许多其他文本编辑器和/或IDE可以帮助您成为最好的程序员。

答案 18 :(得分:2)

我认为它不会让你成为更好的程序员,但是当你达到这个级别时,你很可能会使用emacs(或vi)

: - /

关于这两个人的好处(我之前从未使用过emacs,但我仍然使用vi来完成最平凡的任务)是事实,他们不会打断你的train of thought,你没有必要从键盘中取出手抓住鼠标,然后在文件菜单中搜索正确的选项。你只是,继续写作。在你的脑海里,你会说:“替换所有出现的这个词”,按回车键继续你的工作。

此外,我不认为他们使用emacs是他们唯一的工具。

它会让你成为更好的程序员吗?可能不是。但是当你具备这种专业水平时,你可能会希望使用这些工具进行编码的速度有多快。

答案 19 :(得分:2)

emacs的一个重要功能是,它可以处理任何大小的任何文件类型。不可否认,如果您打开一个疯狂的大型加密文件,它不一定有用但会打开。大多数编辑器(和IDE)会给你一个大的心痛,如果你把它们的文件太大和/或不是他们预期的格式之一。

尝试在记事本中打开1 Gig文件作为示例。

我在1980年左右开始使用Emacs,它一直是我工具箱中的工具。它不是唯一的工具,但它始终是我可以转向的,并且知道我将能够完成一些有用的工作。

强制性煽动性评论:另一方面,我对vi没什么好说的。我一直觉得vi会很高兴地杀了我,并且只是出于恶意而卖掉我的器官......

在现实生活中,我使用Netbeans进行几乎所有形式的开发,我不时地使用emacs进行快速编辑。几乎没有任何东西可以像emacs(对我来说)那样方便现在让事情变得疯狂。

其他人是否必须编译已编译的二进制可执行文件中的静态字符串?有没有比emacs更好的工具呢?它肯定适合我。

答案 20 :(得分:2)

Emacs让我在文本操作和文件系统导航方面更加高效 。因为我编程时涉及这些事情,所以它使我成为一个更有效(因此更好)的程序员。

答案 21 :(得分:2)

没有

纪律,批判性思维和对自我提升的渴望将使你成为更好的程序员。您的工具集虽然是提高工作效率的主要因素,但却无法创造天才。

如果您不喜欢emacs或vi,请不要使用它们。通过有意识地做出选择,您正在塑造您的开发环境以适应您自己的需求和工作实践。在任何情况下,你都有权使用你喜欢的东西 - 并且忽略任何愚蠢的人来谴责你用来将磁盘写入磁盘的工具 - 这是重要的。

注意:“工具集”在字面上意味着工具的“品牌” - 特定的编辑器,编译器等。概念工具集,例如使用版本控制,单元测试 - 一般 - 都是自我改进过程的一部分。

答案 22 :(得分:2)

我认为Emacs可以让你成为更好的程序员,尽管是间接的。我认为Emacs让我实际上用函数式语言(Elisp)编写,这让我对其他函数式语言(Clojure)感兴趣,据说这会让我成为更好的程序员。那就是说,我想时间会证明。

答案 23 :(得分:2)

我知道你没有问过这个问题,但是对我来说,学习emacs(意外)改进的一件事就是操纵一个命令行。在我学习emacs键绑定之前,我曾经使用光标键移动光标并导航历史记录,因为我不知道更好。当我意识到我可以使用backward-wordmove-beginning-of-linebackward-kill-word(我一直绑定C-was Stevey suggests)时,这是一个灯泡时刻bashM-t通常也很有用,对以前从未见过的人来说最令人印象深刻。)

我在Solaris上做了很多工作,其中root shell是“posix shell”,默认情况下没有emacs绑定。我发现我的手指现在每次登录都会自己输入exec bash,我用手指下现在熟悉的编辑命令感觉更快。

必须承认,我仍然觉得Knuth的书很难(虽然值得) - 所以我认为它不会神奇地改进我的编程。

答案 24 :(得分:1)

能够使用某些可自定义的编辑器可以让你做出漂亮的事情,但特别是emacs不一定是最好的一个。我自己就是一个SlickEdit用户,我做了所有与emacs着名的奇怪的半自动化的东西。我见过人们用vi和各种基于Windows的编辑器做类似的事情。

所以,是的,插座设置不错,但争辩说Craftsman制作的One True Socket Set有点愚蠢。

答案 25 :(得分:1)

我认为,使用这些基于文本的编辑器(如VI和Emacs)被高度重视或需要成为“伟大的程序员”这是一个很大的误解。我一直认为IDE的功能非常强大,而且它确实归结为偏好和风格。

答案 26 :(得分:1)

掌握Emacs键绑定及其内置函数将允许您比Eclipse或Visual Studio等IDE更快地处理文本。

请不要相信我,请查看pros using Emacs的这些视频。

一旦你在Emacs中获得了不错的水平,你就可以有效地编辑任何语言:Java Script,Java,Ruby,Python,HTML,C,C ++等。

开始使用Emacs是一个痛苦的屁股,开箱即用的体验更糟糕。 Emacs默认配置不会将Emacs新手暴露给Emacs的更强大功能(hippie-expand,etags,yasnippets等)。我建议从Emacs Starter Kit点文件开始。

Steve Yegge声称世界上最好的程序员使用Emacs的另一个原因是elisp。 Elisp使经验丰富的程序员能够轻松扩展Emacs。在Eclipse或Visual Studio中编写扩展比在elisp中编写快速函数甚至是新的minor mode要困难得多。

答案 27 :(得分:1)

依赖IDE的人与那些不依赖IDE的人之间在技能,工作效率或编程乐趣方面是否存在可测量的差异,或者只是狂热主义?

我认为你真的无法得到答案。有很多不同的方法可以衡量技能,生产力和编程乐趣 - 所有这些方法都可能非常主观和/或不能分解为导致与否的一件事。

这仍然是一个有趣的问题。

我个人认为 - 这取决于程序员:)

G-曼

答案 28 :(得分:0)

没有

我们生活中走的是不同的道路,我们从不同的角度看问题。

要成为一名优秀的程序员,编辑无法帮助你变得更好, 其他的东西让你的编程技巧更好。 但请注意,错误的工具无法帮助您实际上阻碍您作为程序员的演变。

或者如果我们以木匠为例, 一把大锤子不能让一个好木匠变得更好, 但是一把糟糕的锤子可以阻止他做到最好。

/约翰

答案 29 :(得分:0)

Vi和Emacs之间的比较听起来像GNOME和KDE与 me的比较。 Vi(及其方言/实现)简单,简洁,易于掌握,可编写脚本,可扩展的,几乎普遍可用(在所有Unix上)编辑器。另一方面,Emacs,IMO采取更难的方式来做同样的事情。掌握它需要时间,但我想,因为伟大的程序员已经使用过它,在我掌握它之后我也感觉很棒: - )

但是,为了在我有基于文本的编辑器时完成工作,Vi绝对容易上手。也许,Emacs最终激励你学习Lisp, 肯定会改变你编程的方式。这是间接影响,IMO。

答案 30 :(得分:0)

我会说他至少有点对。正如其他人所指出的,与vim或emacs相比,IDE中的编辑器有限。同时,当没有完整的IDE工作(例如通过ssh会话)时,vim和emacs都可用。而另一件事是不必为了鼠标。它真的是一个杀手级的功能 - 人们可以轻松地做到至少两倍的速度。然而,你不会从中受益,除非你至少是一个不错的打字员(其中,BTW是Yegge在他的博客上做得非常清楚的另一点,你必须输入得好)。

答案 31 :(得分:0)

我从emacs开始,但切换到vi,因为它简单,对我来说更优雅。此外,如果您遇到单用户模式,ed命令是vi命令的子集。我不知道emacs是否可以处理它。

所以在这方面,我认为vi会让你成为更好的程序员..

答案 32 :(得分:0)

“你发布的文字只是一个巨魔。是的。没有其他原因比开始一场宗教战争。”

我同意这句话。

任何认为程序员真正的附加价值在程序员使用的编辑器中的人都是白痴。

任何认为真正有价值的程序员的真正价值可以通过让程序员成为错误的编辑而减少的人都是白痴。

(哦,是的,我可能在这里包含一个正式逻辑练习 - 添加真值以使这些命题与常见逻辑一致:) FORALL程序员:好(程序员)===> usesEMACS(程序员) FORALL程序员:使用EMACS(程序员)===>好(程序员) (FORALL程序员:好(程序员)===>使用EMACS(程序员))===> (FORALL程序员:使用EMACS(程序员)===>好(程序员))

(至于宗教战争:) 所有真正有价值的程序员都是在ISPF上长大的,而不是EMACS。

答案 33 :(得分:0)

我在大学时使用过emacs。这是大约16年前。我没有回头。虽然我希望自己仍然能够熟悉emacs,但事实是我的MS IDE非常高效。

你发布的文字只是一个巨魔。是的。没有别的理由比开始宗教战争。

答案 34 :(得分:0)

嗯......对我来说,这是一个生产力和享受的问题。

您提到的所有内容,如intelisense,集成调试器等都可以添加到Emacs中。并且可以根据您的口味添加它们。 您最终会得到一个满足您需求的环境。这样可以提高工作效率,因为它可以让您更轻松地使用您最常用的功能。这也可以增加您的享受,因为您可以修改您的电源过程,从而更好地了解它,最终还可以提高您的工作效率,因为您正在享受更多您正在做的事情。

On plus,您将获得可视化工具中没有的功能:体面的键盘支持。我尝试过没有一个可视IDE,键盘支持会很好。鼠标使用起来很慢。我想要一个专家的界面。不是“奶奶的界面”。 IDE应该是专家的界面。鼠标不是程序员的专家界面。这是一个颓废且耗时的外设,允许您与第一次看到的程序进行交互。

我认为你应该再试一次emacs ...我有一些提示可以开始:

M-x允许您在迷你缓冲区中输入命令

有用的命令:

  • apropos:列出所有命令 与某个字符串相关
  • describe-function:描述命令的作用
  • where-is:发现给定命令的键盘快捷键
  • global-set-key:将自定义快捷方式与给定命令相关联

有用的键盘快捷键:

  • C-x b选择一个特定缓冲区
  • C-2 Splits buffer horizo​​ntaly
  • C-3 Splits buffer verticaly
  • C-o分割时选择其他缓冲区
  • C-0 Unsplits buffer
  • C-是您应该定义自定义快捷方式的地方。

有用的插件: 支持ctags。它们允许您跳转到函数/类定义。

  • ido-mode - 在迷你缓冲区自动完成模式下更好地完成
  • cua-mode - 类似于windows的剪切复制粘贴撤消
  • pc-selection-mode - shift-arrow selection

答案 35 :(得分:0)

披露:我大部分时间都使用emacs。

我不认为必须在使用emacs或IDE之间做出选择。您可以在IDE中使用“emacs”。使用emacs,一旦你手指记住了键绑定,你就可以非常高效,而且你会觉得与任何其他编辑器无能为力。但是,如果你的IDE中有许多(遗憾的是不是全部)emacs键绑定,那么你的工作效率会显着提高,你不会觉得你花在学习emacs上的时间浪费了。

我尝试了eclipse的emacs插件,我发现它非常实用。当然,这并不完美。但是你可以获得使用IDE的所有好处,例如代码完成,重构等。我希望这个插件得到改进,以提供更多的emacs功能。

关于emacs,遗憾的是,它没有跟上时代的步伐而且程序员会因为坚持而错失很多。

但是,如果您碰巧使用scala编程并且是emacs爱好者,那么您很幸运,因为您可以使用ensime包来获取emacs并获得大部分IDE功能 - 突出显示语法错误,代码 - 完成,包浏览,类型检查,重构,调试等。

答案 36 :(得分:-2)

占有是必要但不充分; “聪明的方式”部分让我觉得你必须深入挖掘后面的Lisp并彻底掌握前端。

任何其他编辑的“智能”开发人员都会聪明吗?我会说是的。

答案 37 :(得分:-2)

对任何人都没有冒犯,但这是我在很长一段时间里听到的最愚蠢的事情。

任何编辑器/ IDE只有在您知道如何使用它时才会很好,这将使您的工作效率更高。对于某些人来说,它是emacs,对于其他人来说,它是Visual Studio等等。这是你从编辑器中获取的重要内容。

答案 38 :(得分:-5)

今天有多少人还在使用emacs?唐纳德克努特还活着的时候有没有IDE?