129

Steve Yegge在他的博客上写了一条评论

世界上所有最伟大的工程师都使用 Emacs。改变世界的类型。不是你旁边立方体里的大美女。不是弗雷德,大厅里那个了不起的家伙。我说的是我们行业中最伟大的软件开发人员,他们改变了行业的面貌。James Goslings、Donald Knuths、Paul Grahams、Jamie Zawinskis、Eric Bensons。真正的工程师使用 Emacs。你必须非常聪明才能很好地使用它,如果你能掌握它,它会让你变得异常强大。如果你不相信我的话,在他工作的时候去看看保罗诺德斯特罗姆的肩膀。对于整个职业生涯都在使用类似 Visual Blub .NET 的 IDE 的人来说,这真是大开眼界。

Emacs 是 100 年的编辑器。

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

对于它的价值,我已经尝试过 Emacs,但我的体验令人沮丧,因为它完全缺乏开箱即用的可发现特性。(显然有一个用于发现其他 Emacs 命令的 Emacs 命令,顺便说一句,我找不到 - 这就像在生活你自己的残酷的禅宗般的笑话。)我试图让自己喜欢这个程序一个月,但最终决定我宁愿使用拖放式 GUI 设计器、IntelliSense 和交互式调试。

很难将事实与粉丝主义区分开来,所以我现在还不愿意接受耶格的评论。

依赖 IDE 的人和不依赖 IDE 的人在技能、生产力或编程乐趣方面是否存在可衡量的差异,或者这只是狂热?

4

38 回答 38

121

首先让我说,我自称是 Emacs 的忠实信徒。

也就是说,博主是疯了。你写你觉得有用的东西。我发现 Emacs 对我有帮助,主要是因为我在大学期间预付了启动成本,学习如何修改它以满足我的需要,并根据它的需要修改自己。

但是其他人做事不同,就像他们说的“没关系”。

于 2009-01-27T21:10:12.757 回答
107

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

我想总结一下:仅仅优秀有能力的程序员会拿起一个 IDE 并真正了解它,并且可能在其中做得足够体面,但他们会将自己限制在 IDE 为他们提供的东西上。换句话说,它们使自己适应 IDE。另一方面,伟大的程序员会调整他们的环境以适应他们自己,例如编写脚本或他们自己的工具,或者扩展他们的工具。最后一点,Emacs 不仅是可扩展的环境,也是最容易扩展的环境,而且它是您获得最大收益的环境从扩展它——您的扩展集成到 Emacs 中,就像它们是库存功能一样,因此您未来的扩展可能建立在您以前的扩展之上(正反馈循环之类的东西)。

于 2009-01-27T21:16:42.570 回答
57

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

在一台文本终端非常慢的机器上开始使用 vi(约 1987 年)后,几年后(在一台速度更快的机器上)我转换为 (GNU) Emacs,并且几乎只使用了近 10 年。

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

如今,诸如 eclipse 之类的 IDE 集成度更高(说实话:emacs 在图形方面很烂),但 Emacs 仍然是“纯”文本编辑的最佳环境之一。

于 2009-01-27T21:09:15.767 回答
34

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

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

于 2009-01-28T00:03:24.217 回答
21

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

简短的可耻忏悔:在使用 vi(以及近年来的 vim/gvim)处理所有事情之后,在过去一年左右,我开始使用 Eclipse 进行 java 编辑(和 Thunderbird 进行电子邮件),尽管在我目前的工作中我机器内存太少,我通常使用 vi,除非我需要调试器。

于 2009-01-27T20:42:11.673 回答
13

依赖 IDE 的人和不依赖 IDE 的人在技能、生产力或编程乐趣方面是否存在可衡量的差异,或者这只是狂热?

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

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

编程的乐趣归结为主要是喜欢编程本身,其次是当你这样做时不会出现烦人的因素。使用您难以使用的工具会减少乐趣。所以,我猜想,使用你喜欢和熟悉的工具可能会最大限度地享受乐趣。

当然,一旦你熟悉了一个新工具,你可能会发现你更喜欢那个工具,因此如果你用你最喜欢的工具来编程,你会更喜欢编程。我不清楚当人们对 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 一样快,而且更舒服。我也推荐学习新(编程)语言的相同方法:因为你不知道词汇(标准库),所以说东西很难,但奖励仍在等待你。

于 2009-01-31T20:17:24.087 回答
10

引用的文字以“世界上所有最伟大的工程师都使用 Emacs”开头,我也不会从表面上看它。他认识世界上所有最伟大的工程师吗?世界上最伟大的工程师名单和你我一样吗?

一旦学会了,像 EMACS 或 vi 这样强大的编辑器会让你更有效率,或者如果你碰巧在没有你最喜欢的 IDE 的情况下被抓到,至少效率会更高。

“曾经学过”的部分才是杀手锏。高效地使用这些工具需要大量的工作和练习,而且一开始非常艰难。

于 2009-01-27T20:52:18.393 回答
9

我个人是 Emacs 的忠实拥趸,但 Emacs 只是一个工具。它不会让你成为更好的程序员,就像一支超级花哨的笔不会让你成为更好的作家一样。

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

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

于 2009-01-27T23:46:08.870 回答
8

我不相信有区别,这更像是一个偏好问题。

然而我注意到的是,你编码的时间越长,或者你编码的级别越低,你使用 emacs 或 vi 的机会就越大。

于 2009-01-27T20:43:00.673 回答
8

尽管 IDE 在过去十年中变得更好,但它们仍然将编程包含在一个安全的“泡沫”中,远离一些丑陋的细节。倾向于发生的情况是,这种抽象的增加允许更多的程序员用更少的知识做更多的事情。当然,这并不适用于所有程序员,但更简单的工具确实将编程带给了更广泛的受众。

对低级工具的更多了解通常会转化为代码的更高稳定性,因为意外“违背常规”的机会更少。将 EMACS 列为唯一的领先指标是不公平的,因为它来自各种语言和工具,而且更多的是关于理解的深度,而不是具体的技术。

回到过去,您要么在 UNIX 机器上学习 VI 或 EMACS,要么专攻 PC(好吧,还有 VMS、CMS、AS400 等,但这些都是较旧的技术)。这两个流都吸引了非常热心的人,但 UNIX 人倾向于想要一个复杂的解决方案,而 PC 人只是希望它快点完成。文化非常不同。

于 2009-01-27T21:51:52.500 回答
7

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

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

Yegge 还断言,伟大的程序员会根据自己的工作风格调整他们的工具,而不是反过来。我认为这对于通用编辑器来说是一个胜利,因为您可以自定义一个编辑器,而不必研究如何调整四个不同的 IDE 以使其都按照您想要的方式运行。

于 2009-04-29T23:10:11.630 回答
6

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

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

于 2009-09-24T14:27:52.213 回答
4

我从一开始就使用 IDE(可以说是从 QBASIC 开始),并且已经使用了很多很多年。我现在几乎完全切换到 VIM(多种风格)来完成我的所有开发工作,我不后悔。我的工作效率肯定提高了。

当然,没有什么能取代 Visual Studio 中的 Windows 窗体设计器。但与 VIM(和 Emacs,我敢肯定)相比,Visual Studio 中的文本编辑器真的很糟糕。一旦您利用了控制台和 GNU 开发人员工具(我指的是makeGCCbinutilsgdbIDE 提供的工具(除了表单设计器)。

只是当您第一次开始使用这些工具时,您有一个非常陡峭的攀登,并且激励可能很小。我很幸运(?)被迫使用这些工具,所以我没有选择可以摆脱的选择。

于 2009-01-27T21:37:28.380 回答
3

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

于 2009-01-27T20:48:24.797 回答
3

就个人而言,我觉得你应该使用任何能让你更有效率的东西。如果您没有时间投资于一个项目来坐下来学习 Emacs,那么此时这可能不是您时间的最佳利用方式。

但是,我确实认为,当您有足够的时间了解其他 IDE 时,这是一个好主意。我在日常工作中使用 Visual Studio,但在家里我使用 Eclipse 来处理小型项目并使用过Emacs 也一样。在我考虑使用 Emacs 的特定点上,我努力完成实际工作比放慢自己与 Emacs 搏斗的速度更好。

我认为在某种程度上认为所有最好的程序员都使用 Emacs 是荒谬的。有许多不使用 Emacs 的不那么受欢迎(或者可能不那么有声望)的优秀程序员。

于 2009-01-27T20:52:43.913 回答
3

大约一年半前,我开始使用 Emacs,因为它融合了多种需求——想要使用正则表达式(在支持它们的编辑器中),想要学习 lisp,想要更好的编辑器。

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

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

于 2009-01-27T22:00:44.027 回答
3

不,好的代码会让你成为更好的程序员。

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

于 2009-01-28T06:30:40.457 回答
3

不会。如果您认为使用 emacs 可以让您成为更好的程序员,那么您就是在混淆因果关系。

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

这些是我的理由:

  • emacs 中的实际文本编辑体验胜过其他一切。仅使用键盘即可完成如此多的任务,令人惊讶。Eclipse 更面向鼠标,当您键入时会遇到很多烦人的障碍。
  • 能够使用 elisp 自定义 emacs 非常强大。我什至会说,如果您不花时间学习基本的 elisp 和自定义环境,那么您只是在浪费时间。
  • 几乎所有你想在文本编辑器中做的事情都有扩展。
于 2009-02-04T17:15:08.697 回答
2

依赖 IDE 的人和不依赖 IDE 的人在技能、生产力或编程乐趣方面是否存在可衡量的差异,或者这只是狂热?

我认为你无法真正得到答案。有很多不同的方法可以衡量技能、生产力和编程乐趣——而且所有这些方法都可能非常主观和/或不能分解为一个导致它或不导致它的事情。

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

我个人的信念是 - 这取决于程序员:)

G人

于 2009-01-27T20:50:18.460 回答
2

emacs 的一大特点是它可以处理几乎任何你扔给它的文件类型,任何大小。诚然,如果您打开一个疯狂的巨大加密文件,它不一定有用,但它会打开。如果你交给他们一个太大的文件和/或不是他们预期的格式之一,大多数编辑器(和 IDE)会让你非常心痛。

例如,尝试在记事本中打开一个 1 Gig 文件。

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

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

在现实生活中,我使用 Netbeans 进行几乎所有形式的开发,并且不时使用 emacs 进行快速编辑。当谈到现在做一些疯狂的事情时,几乎没有什么比 emacs(对我来说)更方便的了。

还有其他人必须在编译的二进制可执行文件中编辑静态字符串吗?有没有比 emacs 更好的工具呢?它当然对我有用。

于 2009-01-27T21:24:38.123 回答
2

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

: - /

这两个的好处(我以前从未使用过 emacs,但我仍然使用 vi 来完成最普通的任务)是事实,它们不会打断你的思路,你不必把手移开键盘抓住鼠标,并在文件菜单中寻找正确的选项。你只是,继续写。在你的脑海中,你会说:“用这个词替换所有出现的词”,然后按 Enter 键并继续你的工作。

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

它会让你成为更好的程序员吗?可能不是。但是,当您拥有该级别的专业知识时,您可能会喜欢使用这些工具编写代码的速度。

于 2009-01-27T21:42:45.920 回答
2

不。

纪律、批判性思维和自我提升的愿望将使您成为更好的程序员。您的工具集虽然是您生产力的主要因素,但不会创造天才。

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

注意:这里的“工具集”字面意思是工具的“品牌”——特定的编辑器、编译器等。概念性工具集,例如版本控制的使用、单元测试——通常来说——都是自我的一部分。改进过程。

于 2009-01-28T00:00:06.767 回答
2

我知道您没有问这个问题,但是学习 emacs(出乎意料地)对我来说有所改进的一件事是操作命令行。在我学习 emacs 键绑定之前,我曾经使用光标键移动光标和浏览历史记录,因为我不知道更好。当我意识到我可以使用backward-word,move-beginning-of-line和(正如 Stevey 建议的那样,backward-kill-word我一直都必须使用) in (通常也很有用,并且对那些以前从未见过它的人来说最令人印象深刻的时候,这是一个灯泡时刻。C-wbashM-t

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

不过必须承认,我仍然觉得 Knuth 的书很难读(尽管值得)——所以我不认为它神奇地改进了我的编程。

于 2009-01-31T19:36:47.227 回答
2

Emacs 让我在文本操作和文件系统导航方面更有效率。而且由于我在编程时会涉及到这两件事,这让我成为了一个更高效(因此更好)的程序员。

于 2009-09-23T19:57:47.360 回答
2

我认为 Emacs 可以让你成为一个更好的程序员,尽管是间接的。我认为 Emacs 让我真正用函数式语言 ( Elisp ) 编写,这让我对其他函数式语言 ( Clojure ) 感兴趣,我被告知这将使我成为一个更好的程序员。也就是说,我想时间会证明一切。

于 2009-10-15T04:44:52.963 回答
1

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

所以,是的,插座套装很好,但认为工匠制作了一个真正的插座套装有点愚蠢。

于 2009-01-27T22:57:45.830 回答
1

掌握 Emacs 键绑定及其内置功能将使您能够比 Eclipse 或 Visual Studio 等 IDE 更快地操作文本。

不要相信我的话,看看这些使用 Emacs 的专业人士的视频。

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

开始使用 Emacs 是一件很痛苦的事,开箱即用的体验比糟糕还糟糕。Emacs 默认配置不会让 Emacs 新手接触 Emacs 更强大的功能(嬉皮扩展、etags、yasnippets 等)。我建议从Emacs Starter Kit点文件开始。

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

于 2009-01-28T20:59:48.190 回答
1

我认为使用这些基于文本的编辑器(例如 VI 和 Emacs)被高度评价或需要成为“伟大的程序员”,这是一个很大的误解。我一直觉得 IDE 比以前更强大,而且它确实归结为一种偏好和风格。

于 2009-01-30T17:04:37.800 回答
0

我在大学用过emacs。那是大约 16 年前的事了。我没有回头。虽然我希望我仍然可以对 emacs 感到满意,但事实是我对我的 MS IDE 的工作效率很高。

您发布的文字只是一个巨魔。是的。除了发动一场宗教战争之外,没有其他原因。

于 2009-01-27T21:13:51.920 回答
0

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

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

于 2009-01-27T21:45:21.343 回答
0

我会说他至少在某种程度上是对的。正如其他人所指出的,与 vim 或 emacs 相比,IDE 中的编辑器有点受限。同时,vim 和 emacs 都可用,当没有机会让一个成熟的 IDE 工作时(例如通过 ssh 会话)。还有一件事是不必伸手去拿鼠标。它确实是一个杀手级功能 - 一个人可以轻松地以至少两倍的速度做事。但是,除非您至少是一个体面的打字员,否则您不会从中受益(顺便说一句,这是 Yegge 在他的博客上明确指出的另一点,您必须打字好)。

于 2009-01-27T22:09:26.973 回答
0

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

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

于 2009-01-28T06:06:00.693 回答
0

我们都走着不同的人生道路,我们从不同的角度看待问题。

要成为一名优秀的程序员,编辑器不能帮助你变得更好,其他的东西会让你的编程技能更好。但请注意,对您没有帮助的错误工具实际上会阻碍您作为程序员的发展。

或者,如果我们以木匠为例,一把好锤子不能让一个伟大的木匠变得更好,但一把坏锤子可以阻止他尽力而为。

/约翰

于 2009-01-28T06:41:42.460 回答
0

“你发布的文字只是一个巨魔。是的。除了发动一场宗教战争之外没有其他原因。”

我同意报价。

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

任何认为一个真正有价值的程序员的真正价值会因为给程序员错误的编辑器而降低的人,都是白痴。

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

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

于 2009-06-16T18:54:59.277 回答
0

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

你提到的所有东西,比如智能感知、集成调试器等都可以添加到 Emacs 中。并且可以根据您的口味添加它们。您最终会得到一个满足您需求的环境。这提高了工作效率,因为它也让您可以更轻松地使用最常用的功能。这也提高了你的乐趣,因为你可以修改你的动力过程,从而更好地了解它,最终也会提高你的生产力,因为你更享受你正在做的事情。

此外,您还可以获得视觉工具中没有的功能:不错的键盘支持。我没有尝试过任何一个可视化 IDE,它的键盘支持是不错的。鼠标使用缓慢。我想要一个专家的界面。不是“奶奶的界面”。IDE 旨在成为专家的界面。鼠标不是程序员的专家界面。这是一个颓废且耗时的外围设备,可让您与第一次看到的程序进行交互。

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

Mx 允许您在 minibuffer 中输入命令

有用的命令:

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

有用的键盘快捷键:

  • Cx b 选择一个特定的缓冲区
  • C-2 水平分割缓冲区
  • C-3 垂直分割缓冲区
  • Co 在拆分时选择其他缓冲区
  • C-0 拆分缓冲区
  • C- 是您应该定义自定义快捷方式的地方。

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

  • ido-mode - 在 minibuffer 自动完成模式下更好的完成
  • cua-mode - 类似 Windows 的剪切复制粘贴撤消
  • pc-selection-mode - 移位箭头选择
于 2011-04-15T23:27:03.357 回答
0

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

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

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

关于 emacs,遗憾的是,它并没有跟上时代的步伐,坚持下去的程序员会错过很多。

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

于 2011-04-16T03:22:26.660 回答
-2

占有是必要的,但还不够;“聪明”部分让我觉得你必须在后面深入研究 Lisp 并彻底掌握前面。

与任何其他编辑器一起“聪明”的开发人员会同样聪明吗?我会说是的。

于 2009-01-27T20:41:53.437 回答
-2

没有冒犯任何人,但这是我很长时间以来听到的最愚蠢的事情。

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

于 2009-06-16T18:05:26.160 回答