Emacs会让我成为更好的程序员吗?[关闭]


130

史蒂夫·耶格(Steve Yegge)在他的博客上发表了评论

世界上所有最伟大的工程师都使用Emacs。改变世界的类型。不是您旁边的立方体中的巨大gal。不是弗雷德(Fred),大厅下的那个了不起的家伙。我说的是我们行业中最伟大的软件开发人员,那些改变了行业面貌的人。詹姆斯·高斯林(James Goslings),唐纳德·克努斯(Donald Knuths),保罗·格雷厄姆(Paul Grahams),杰米·扎温斯基斯(Jamie Zawinskis),埃里克·本森斯(Eric Bensons)。真正的工程师使用Emacs。您必须聪明地使用它,并且如果您能够熟练使用它,它将使您无比强大。如果您不相信我,请在保罗·诺德斯特罗姆(Paul Nordstrom)工作的时候翻看他的肩膀。对于在整个职业生涯中都使用过类似Visual Blub .NET的IDE的人来说,这真是大开眼界。

Emacs是100年的编辑。

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

对于它的价值,我已经试过的Emacs,我的经验是,因为它完全缺乏的盒外的发现功能,一个令人沮丧的。(显然,有一个Emacs命令可用于发现其他Emacs命令,但我无法找到它-就像是在经历自己的残酷的Zen笑话一样。)我试图让自己喜欢该程序一个好月,但最终我宁愿选择拖放式GUI设计器,IntelliSense和交互式调试。

很难将事实与狂热主义区分开来,因此我暂时还不愿以Yegge的评论为准。

依赖IDE的人与不依赖IDE的人之间在技能,生产力或编程享受方面是否存在可衡量的差异,或者仅仅是狂热?


22
值得注意的是Paul Graham使用了vi。Yegge在链接文章的脚注中亲自提供了此更正。
Eli Courtwright 09年

16
在我使用过的所有编辑器中,Emacs是唯一一个告诉您每次启动教程如何运行的编辑器(直到您学到足以告诉它停止告诉您如何运行教程的时间)。
Michael Paulukonis 09年

16
EMACS代表什么?Escape Meta Alt Control Shift!;-)
Peter K.

24
术语:Emacs是“程序员编辑器”,而不仅仅是“文本编辑器”。GUI IDE也具有编辑文本的功能,但它们也不只是文本编辑器。将记事本与Emacs进行比较就像在进行比较……向死星上的那把枪扔石头到用枪击中东西。
格雷格·马特斯

8
显然,有些人不了解相关性因果关系
Chubas

Answers:


119

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

就是说,博客是疯子。您用自己认为有用的东西写东西。我发现Emacs可以为我提供帮助,主要是因为我在大学期间花了很多时间来支付启动学习的费用,这些费用是学习如何进行修改以满足自己的需求,以及根据自己的需要进行修改的。

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


73
同意 我爱Emacs,但是认为Emacs将使您成为更好的程序员,就像认为使用Tiger Woods的高尔夫球杆将使您成为更好的高尔夫球手,或者使用Eddie Van Halen的吉他将使您成为更好的音乐家一样。
克里斯托弗·约翰逊,2009年

31
强烈不同意上述克里斯托弗(Kristopher)的评论。使用出色的体育工作者/艺术家的工具绝对不会使您像它们一样出色。但是,使用正确的编程工具进行正确的工作肯定会!尽管将编程等同于体育和艺术可能会被原谅。:)
Susheel Javadi 09年

6
@Bart:他的观点是有多个“正确的工具”。泰格伍德的高尔夫球杆是出色的工具,非常适合这份工作,但也有其他高尔夫球杆可以提供相同的结果。一个好的程序员所使用的工具并不能定义它们,而是可以定义他们的创造力和能力。
赛斯·摩尔

9
我认为Steves声明的全部意义在于,伟大的程序员使用emacs,优秀的软件开发人员使用IDE可以提高生产率。优秀的程序员始终会进行编程,即使在生成程序代码时,它们也会自动执行任务,他们喜欢make,ant,bash,perl和hudson。他们知道,在软件开发周期的任何部分中的手动任务都容易出错。优秀的程序员还知道,如果其他人(例如IDE或任何人)构建您的代码,那么在维护代码(例如IDE或任何人)时,您始终依靠其他人的技能
Ernelli

4
史蒂夫·耶格(Steve Yegge)用elisp写了一个完整的JavaScript解析器,所以毫无疑问,就Emacs而言,他是个疯子:)
Tikhon Jelvis 2011年

106

他(史蒂夫·耶格(Steve Yegge))在他的其他文章中对此进行了详细阐述。http://steve-yegge.blogspot.com/2008_04_01_archive.html可能是最全面的,但是由于该信息与主要主题相切,因此信息被埋藏在其中。

我想总结一下:仅仅是优秀或有能力的程序员会选择一个IDE并真正了解它,并且也许在其中做得相当体面,但是他们会局限于IDE为他们提供的东西。换句话说,它们使自己适应IDE。在伟大的程序员,在另一方面,将适应他们的环境来适应自己,在这样的方式编写脚本或自己的工具,或延长他们的工具。到最后一点,不仅Emacs是目前可扩展的环境,它也是最容易扩展的环境,这是您从中受益最大的环境 从扩展到扩展-您的扩展就像是现有功能一样集成到了Emacs中,因此您将来的扩展可能会基于您以前的扩展(正反馈循环之类的东西)。


15
不同之处在于扩展IDE所需的精力。使用emacs时,所有配置文件都是elisp程序文件。因此,从本质
上讲

18
与安格斯相同。优秀的IDE不必无休止地完成工作。一个好的IDE应该具有一个需要的所有功能。当然,您可能需要配置快捷方式和布局,但是不需要编写一堆脚本来处理所有事情。
Kibbee

5
安格斯:你是对的。如果您不得不费力地添加一些东西而不是完成工作,那么您就错过了重点-不管是不是Emacs。索尔:还有更多的事情要扩展,然后再通过外部程序发送源代码。实际上,这根本不是强大的扩展机制。
乔纳森·阿科尔

15
扩展emacs和扩展netbeans,Visual Studio或Eclipse之间的区别是速度。向eclipse添加扩展就像编写整个应用程序一样。相比之下,为emacs编写扩展可以是一行代码。
贾斯汀·坦纳

4
@supercheetah-与Visual Studio中的智能感知相比,它看起来非常原始,例如,可用成员旁边显示的图标很有用!就个人而言,没有强大的重构支持,我对Emacs几乎没有兴趣。
si618

57

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

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

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

如今,诸如eclipse之类的IDE甚至可以更好地集成(说实话:emacs擅长于图形),但是Emacs仍然是“纯”文本编辑的最佳环境之一。


10
+1为第一段中的自我实现的预言。
OregonGhost,

12
“最有经验的程序员才是最好的”-至少从暗示上讲,与事实相去甚远。并不是说没有经验的程序员会更好,而是因为他从事同一件事已经20多年了-并不意味着他做得很好。
AviD

7
20年前有很多不同的编辑。他们中的大多数根本没有生存,通常是有充分理由的。为什么在1989年使用vi或emacs的人要比在1989年使用基于MS-DOS的编辑器的人好,或者为什么我在Control Data大型机上使用了什么技巧?
David Thornley,2009年

哎呀,十年前还没有一个好的 Java IDE!
Susheel Javadi 2011年

从20年前的记忆中,vi和emacs是绝对占主导地位的编辑器-只是因为当时(如现在)有很多编辑器,并不意味着它们都被同样广泛地使用。
FinnNk 2011年

34

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

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


我也想说一个很好的类比。
罗布

21
但是,如果用锤子砸坏,会在尝试建造同一所房屋时破坏您的生产力,最终您可能会得到另一所房屋。
user51568

这还算公平!一个普通的程序员用昂贵的锤子再好不过了。
贾斯·潘内萨

5
优秀的程序员可以用石头砸锤建造一所很棒的房子。(他很慢-但他仍然可以做到。:D)
Egon

是的,但是拥有使代码有机地流出来的编辑器(我认为Emacs比大多数编辑器都擅长)可以改善您的思路,从而解决问题。
Skilldrick

21

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

简短的可耻的告白:在使用vi(最近几年使用vim / gvim)已有20年之后,在过去的一年左右的时间里,我开始使用Eclipse进行Java编辑(使用Thunderbird进行电子邮件),尽管目前我的工作是机器的内存太少了,通常我需要使用vi,除非需要调试器。


7
vi +1(实际上,使用vim,但相同)。这是emacs可以完成的不到一半工作的98%。
rmeador

25
我用vim 5年了。在Emacs中呆了20分钟后,我发誓我永远不会回去。Vim感到倒退。
MattBelanger

5
Yegge自己提到了这一点:[一个值得注意的例外是VIM,尽管我没有经验,但它在所有方面都非常强大。如果您已经对vi而不是emacs有了一种偏好,那么追求VIM专业知识可能会带来更大的快乐。[ Psh
user674062 2011年

1
呃。Bill Joy不再使用vi。
Plumenator

13

依赖IDE的人与不依赖IDE的人之间在技能,生产力或编程享受方面是否存在可衡量的差异,或者仅仅是狂热?

让我们将范围缩小到Visual Studio vs. Emacs-否则问题就太广泛了,我怀疑大多数人(至少在StackOverflow上是这样)对这两个人很熟悉。[我是,我使用并更喜欢emacs]

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

编程的乐趣归结为首先喜欢编程本身,其次是在进行编程时不会出现烦人因素。使用您苦苦挣扎的工具会减少乐趣。因此,我想很可能是,通过使用您喜欢和熟悉的工具可以最大程度地享受这种乐趣。

当然,一旦您熟悉了一个新工具,您可能会发现您更喜欢该工具,因此,如果使用您最喜欢的工具来进行编程,将会更喜欢。对我来说,尚不清楚人们一般都对VS而不是emacs感兴趣(反之亦然)。

接下来,编程技巧。如果技能与VS / emacs的选择之间存在任何联系,我认为这是导致选择的技能,而不是导致选择的技能。以我的经验,{VS,emacs}似乎都没有使我学习有关编写更好的代码的任何知识。

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

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

我喜欢的另一件事是能够在我的编辑器中嵌入外壳的功能。以我的经验,在非Windows平台上它的价值更大(而我的第一个“编程”经验IIRC是编写DOS .bat文件,因此我不仅是个发烧友),但在那些平台上,这是一个巨大的胜利。它使emacs与“所有内容”“集成”(使用查找/定位的文件搜索,使用grep的文本搜索,使用svn / git / hg / ...的版本控制)。

最终裁决-是否应学习emacs?这是所有狂热分子吗?如果您有时间,我会说总是值得学习做同一件事的新方法,因为新方法可能会为您带来更好的工作。我鼓励您不要因为它是新手而拒绝它。从这个意义上讲,这就像切换到Dvorak键盘布局一样:开始时速度较慢,但​​是一旦加快速度,您的速度可能至少与qwerty一样快,并且更加舒适。我还建议您使用相同的方法来学习新的(编程)语言:因为您不了解词汇表(标准库),所以说起来很难,但是回报仍在等待着您。


1
“让我们将范围缩小到Visual Studio vs. Emacs -否则问题就太广泛了,我怀疑大多数人(至少在StackOverflow上是这样)对这两个人很熟悉。” -真的吗?我认为还有更多像我这样狂热的* nix迷,他们不会被迫使用VisualStudio,更不用说自愿使用它了。嗯
熊加米奥夫09年

“使用Ctrl- [fbnp]进行光标移动是真正的福音”。尽管我很喜欢Emacs,但经过长时间的中断后又回到了Emacs,但我发现以这种方式移动光标是再次使用Emacs时最无用和最舒适的方面。相比之下,我无需看什至思考就可以找到并找到专用的光标键。也许成为一名钢琴演奏家会有所帮助?:)但是谁又知道,随着时间的流逝,也许C-压缩字母会更自然。
格雷格·亨德肖特

2
ps我完全同意shell和平台。如果要在Windows,OS X和Linux之间移动,则希望Cygwin处于第一个位置,而Emacs处于这三个位置上。将您的.emacs.d放到GitHub上,您真是金。
格雷格·亨德肖特2011年

同时,你可以做搜索,其中包括在Visual Studio中使用正则表达式换行符
Axarydax

10

引用文字开头为“世界上所有最伟大的工程师都在使用Emacs”,我也不愿以为然。他是否认识世界上所有最伟大的工程师?您或我是否拥有同一世界上最伟大的工程师名单?

一旦学会了,像EMACS或vi这样的强大编辑器将使您更加高效,或者如果您碰巧没有您最喜欢的IDE就被捕获,至少可以提高效率。

杀手。是“一次学到”的部分。高效地使用这些工具需要大量的工作和实践,一开始很难。


1
我认为真正帮助某人成为“杰出”工程师的素质之一是能够延迟满足并承担更大的固定启动成本以提高效率。
蒂洪·耶维斯

9

我个人是Emacs的忠实拥护者,但是Emacs只是一个工具。它只会使您成为更好的程序员,就像花哨的钢笔会使您成为更好的作家一样。

关于“优秀程序员”使他们的环境适应自身的说明可能有一些优点,但是许多工具可以做到这一点(例如vim和SlickEdit),因此在这方面Emacs没什么特别的。

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


超级花哨的钢笔让我感觉像海明威一样。
Cheeso

2
关于Emacs关于“适应环境”的特殊之处在于,在Emacs中这样做比在Vim或SlickEdit中简单得多。(或我认识的其他任何编辑)
vedang


8

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

对低级工具的更多了解,通常会转化为代码的更高稳定性,因为偶然发生“违背原则”的机会更少。仅将EMACS列为唯一的领先指标是不公平的,因为它来自多种语言和工具,并且实际上更多地是了解的深度,而不是特定的技术。

往回走,您要么在UNIX机器上学习了VI或EMACS,要么专攻PC(当然,也有VMS,CMS,AS400等,但这些都是较旧的技术)。这两个流都吸引了非常热衷的人们,但是UNIX的人们倾向于想要一个复杂的解决方案,而PC的人们只是希望它能很快完成。文化差异很大。


7

IMHO IDE倾向于围绕特定平台或语言或操作系统进行优化:Eclipse JDT非常适合Java,Visual Studio以C ++ /。NET为中心,等等。如果您仅从事以下工作,它们将极大地提高生产率(再次是IMHO)。该平台,但是如果您更改平台,则必须基本上学习一个新的IDE(或者至少要有一组新的插件,视图,透视图,并且我不知道Eclipse还有什么用)。

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

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


问题是当你不得不写不同的平台,你一直在一个:你从* nix中移动到Windows例如,你的脚本打破,因为他们假设以“/” Bourne shell中-在基于路径类似于FHS的结构,具有基于PostScript的打印...
SamB 2010年

我已经使用emacs已有一段时间了,而光标移动就足以让我讨厌用其他任何方式写东西-即使它是KMail中的电子邮件。
Arne Babenhauserheide 2012年

@ArneBabenhauserheide这是我爱Mac OS X几乎所有文本字段都支持的原因之一C-[npfbaed]。(但可惜不是M-
porglezomp 2014年

6

我认为最好的程序员往往是那些会花时间自定义环境的人,这样可以更快/更轻松地执行他们可能要做的任务。关于自定义环境,Emacs是功能最强大的编辑器之一。它具有陡峭的学习曲线,但是一旦您克服了这一难题,您可以为自己做的事情几乎没有限制。

曾经有人说过,最好的程序员就是懒惰的程序员。一旦他们需要做不止一次的事情,他们就会找到一种使之自动化的方法,从而减少了工作量。Emacs使您变得非常懒惰;)


4

我从一开始就使用IDE(可以说是从QBASIC开始),并且已经使用了很多年。现在,我几乎所有开发工作都完全转向了VIM(多种口味),我对此并不后悔。我的生产力肯定提高了。

当然,没有什么可以取代Visual Studio中的Windows窗体设计器。但是与VIM(和Emacs,我敢肯定)相比,Visual Studio中的文本编辑器确实很糟糕。一旦利用了控制台和GNU开发人员工具(我的意思是makeGCC binutilsgdb,再加上一些)的原始功能,您会注意到这些工具看似原始,但它们却相反,实际上可以提供所有功能IDE提供的工具(当然,表单设计器除外)。

刚开始使用这些工具时,只是前方有一个非常陡峭的攀爬,而激励可能很小。我很幸运(?)被迫使用这些工具,所以我别无选择。


3

就我个人而言,我认为您应该使用任何可以提高工作效率的方法。如果您没有时间投资于一个项目来学习和学习Emacs,那么此时可能不是最好的时间利用方式。

但是,我确实觉得在有足够时间的时候了解其他IDE是个好主意。我在日常工作中使用Visual Studio,但在家里我将Eclipse用于小型项目,并且Emacs也是如此。在考虑使用Emacs的特定时间点上,我的工作最好是完成实际工作,而不是放慢自己对Emacs的努力。

我认为在某种程度上说所有最好的程序员都使用Emacs是荒谬的。有很多不使用Emacs的出色程序员,他们并不那么受欢迎(或者说是发声)。


3

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

使用正则表达式编辑代码教会了我很多有关在代码中查找模式的知识。击键花了一段时间才能习惯,但没有鼠标我的飞行速度就快了很多。

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


3

不,好的代码使您成为更好的程序员。

也就是说,良好的文本操作是效率的关键。vim或emacs都将改变您处理文本的方式-两者都被证明是有效的,但是在样式方面几乎彼此矛盾。此外,这种争论还很古老(可以追溯到80年代和90年代,这里的文本->编译器是关键),因此还有许多其他文本编辑器和/或IDE可以帮助您成为最好的程序员。


3

不会。如果您相信使用emacs可以使您成为更好的程序员,那么您会混淆因果关系。

不过,我每天都会使用它。我发现与使用Eclipse进行Java开发相比,使用emacs + maven的生产率更高(尽管我仍然时不时地启动Eclipse,以偶尔进行重构或调试会话)。

这些是我的原因:

  • emacs中的实际文本编辑体验胜过其他一切。仅使用键盘就可以完成这么多的任务,这真是太神奇了。Eclipse更面向鼠标,当您键入内容时,会遇到很多令人烦恼的障碍。
  • 能够使用elisp定制emacs的功能非常强大。我要说的是,如果您不花时间学习基本的elisp和自定义您的环境,那简直就是在浪费时间。
  • 实际上,您可以在文本编辑器中进行任何扩展。

1
为相关性+1!=因果关系
熊加米奥夫09年

您正在使用哪种Java模式?
avendael 2011年

1
我正在使用Emacs23随附的常规Java模式,其中包含一些自定义设置和用于运行Maven构建的黑客程序。我还开始使用emacs-eclim,它充当emacs和eclipse之间的桥梁。很好用,但目前还很粗糙。
fred-o

3

对我来说,我选择Emacs而不是IDE的主要原因是因为它允许我仅用键盘即可完成所有操作。这样做的好处是可以节省一些我通常使用鼠标的时间。另外,由于我发现自己移动性很强,因此我倾向于使用慢速触摸板来中断编程“凹槽”。此外,它的自定义功能使它对我来说更胜于某些IDE。但是,如果您发现自己使用IDE进行编程的速度足够快,那么我会说Emacs的学习曲线并不值得。


2

依赖IDE的人与不依赖IDE的人之间在技能,生产力或编程享受方面是否存在可衡量的差异,或者仅仅是狂热?

我认为您无法真正找到答案。衡量技能,生产力和编程享受的方法有很多,而所有这些方法都可能是非常主观的,并且/或者不能分解为导致该问题的一件事。

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

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

侠客


迷们花花公子。IDE不是编辑器。IDE不一定是最好的编辑器。
Perpetualcoder

2

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

:-/

关于这两个的好处(我以前从未使用过emacs,但我仍然使用vi来完成最普通的任务)是事实,它们不会打扰您的思路,您不必费力气键盘抓住鼠标,然后在文件菜单中搜寻正确的选项。你就是,继续写作。在您的脑海中,您会说出类似的内容:“为此替换所有出现的单词”,按Enter键并继续进行工作。

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

它会使您成为更好的程序员吗?可能不是。但是,如果您具有这样的专业知识水平,也许您会喜欢使用这些工具进行编码的速度。


菜单中的狩猎对象是不了解IDE的人。我不知道上一次我什么时候不得不“寻找”菜单选项。
tster

因此,您认为使用“ File-> Save”比Ctrl-S更好吗?我不这么认为。我必须抓住鼠标,单击“菜单”文件,然后将鼠标下移至“保存”条目,这对我来说似乎很重要,而您无需握住键盘就可以这样做。
OscarRyz

显然我同意。就像emacs一样,我使用的所有IDE都具有广泛且可自定义的热键和组合。
tster

2

没有。

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

如果您不喜欢emacs或vi,请不要使用它们。通过做出有意识的选择,您可以调整自己的开发环境以适应自己的需求和工作实践。在任何情况下,您都有权使用自己喜欢的东西-忽略任何愚蠢到会为您使用用于将位写入磁盘的工具而指责您的人-这才是重要的。

注意:“工具集”从字面上讲是工具的“品牌”,即特定的编辑器,编译器等。概念性的工具集,例如,使用版本控制,单元测试,通常都是自包含的一部分。改进过程。


2

emacs的一大功能是,它可以处理几乎任何大小的文件类型。诚然,如果您要打开一个疯狂的巨大加密文件,它不一定有用,但会打开。如果您给他们提供的文件太大和/或不是他们期望的格式之一,大多数编辑器(和IDE)都会给您带来极大的困扰。

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

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

强制性炎症评论:另一方面,关于vi我无话可说。我一直觉得vi会很乐意杀死我,并且会不顾一切地卖掉我的器官。

在现实生活中,我几乎将Netbeans用于所有形式的开发,并且不时使用emacs进行快速编辑。当要立即完成疯狂的工作时,几乎没有什么东西比emacs(对我来说)那么方便。

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


1
而Visual Studio会完全错过这个机会,而是对自己的钱包进行纵容来满足自己,看看是否有多余的现金。
罗布

抱歉,我不知道。我几乎一直使用Netbeans,并在需要时使用emacs。
Bob Cross

2

我知道您没有问这个,但是学习emacs(出乎意料的)对我来说改进的一件事是操纵命令行。在我学习emacs键绑定之前,我曾经使用光标键移动光标和浏览历史记录,因为我没有更好的了解。这是一个灯泡时刻东西,当我意识到我可以使用backward-wordmove-beginning-of-line并且backward-kill-word(我一直都必然C-w因为Stevey建议)中bashM-t通常是太有用,而最令人印象深刻那些谁以前从未见过它)。

我在Solaris上做了很多工作,Solaris的根外壳是“ posix外壳”,并且默认情况下没有emacs绑定。我发现exec bash,每次登录时,我的手指现在都按照自己的风格打字,使用现在熟悉的手指编辑命令,我感觉更快。

必须承认,尽管如此,我仍然觉得Knuth的书很难(尽管值得)-因此,我认为这并不能神奇地改善我的编程。


伙计,我真的需要学习更多这些技巧……无论如何,您不能更改登录shell,或者当您说“ root shell”时,您实际上是在说“ root用户的shell”吗?如果是这样,为什么您要以root用户身份登录???
SamB

2

Emacs使我在文本处理和文件系统导航方面更加高效。而且由于这两种情况在我编程时都会涉及到,这使我成为了一个更高效(因此更好)的程序员。


2

我认为Emacs可以间接使您成为一个更好的程序员。我认为Emacs让我实际上是用一种功能语言(Elisp)编写的,这使我对其他功能语言(Clojure)产生了兴趣,我被告知这将使我成为一个更好的程序员。就是说,我想时间会证明一切。


这是一种非常古老的Lisp风格(仅具有动态作用力,没有词法作用域),但是它确实有很多要教的内容。这样,在实际上可以正常工作的那些日子里,它可以成为一个非常不错的文本编辑器!
SamB 2010年

1

能够使用一些可自定义的编辑器使您可以做一些漂亮的事情,但是特别是emacs不一定是“可能的最佳选择”。我自己是SlickEdit用户,我使用emacs闻名的相同的半自动化东西。我见过人们使用vi和各种基于Windows的编辑器来做类似的事情。

因此,是的,插座套件不错,但是认为工匠制造一个真正的插座套件有点愚蠢。


顺便说一句,如果不是出于死脑筋的营销,我可能会倾向于尝试SlickEdit:“不使用SlickEdit的10个理由-#1:您喜欢做一个坏程序员。#2:您想花更多的精力做少#3:你是近亲白痴,等等等等等等
朱丽叶2009年

在Slick进行市场营销之前,我已经涉足了它。仅仅是它是当时在OS / 2 3.0下运行的唯一真正的编辑器。这可能与所有其他人都使用emacs的原因相同...
mjfgates

1

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

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

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

Emacs入门是一个痛苦的旅程,开箱即用的体验比坏还糟。Emacs的默认配置不会使Emacs新手接触到Emacs的更强大的功能(嬉皮扩展,etags,yasnippets等)。我建议从Emacs入门工具包点文件开始。

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


问题是为什么为什么要开始使用它?如果一个人快乐,舒适且富有成效,为什么要浪费时间和精力来学习emacs?我宁愿学习一种新的编程语言或研究一种新技术,也不愿学习一种旧的编辑器,尽管它功能强大。每天只有24小时,请明智地使用时间。
sarsnake

我想指出的另一件事,这也取决于您使用的技术。Emacs是否具有智能?我在大学的UNIX计算机上使用了它,并且我确定从那以后它已经发生了变化。但是对于.NET,智能是必须的。任何人都不可能记住所有名称空间中所有类中的所有函数名称。而且我确定每次需要查找函数名称时,都不会使用MSDN。如果Emacs提供了智能,我会考虑的。
sarsnake

1

我相信,使用这些基于文本的编辑器(例如VI和Emacs)受到高度重视或需要成为“伟大的程序员”,这是一个很大的误解。我一直觉得IDE曾经比以前强大,而且确实具有偏好和风格。


0

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

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


0

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

因此在这方面,我认为vi使您成为更好的程序员。


Emacs 确实具有Mx vi模式,但我怀疑那是个玩笑...
Brian Postow 09年

了解vi的基础知识对于执行系统管理至关重要。但是,这不是编程。
熊基亚莫夫09年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.