每当我查看Lisp的编辑器时,Emacs都不可避免地出现。从没有看过Emacs的人的角度来看,与Vim,Eclipse等相关的东西是什么呢?
答案 0 :(得分:11)
粘液Emacs模式与“劣质”lisp交互以获得更好的lisp体验:Emacs将要求lisp:
答案 1 :(得分:6)
Emacs非常适合Lisp,因为Emacs在Lisp(大部分)中是编写的。设计和实现Emacs的人想要一个非常适合编写Lisp代码的编辑器。
答案 2 :(得分:4)
有些事情“让Emacs成为了一个适合lisp程序员[/ hacker]的好环境”:
emacs的“高级”部分都是用elisp编写的;模块/模式可以编辑为套件,整个elisp环境都是“实时”的。互动可能非常复杂,但是,如果你是一个lisp黑客...并且可以站在那里......
编辑 lisp缓冲区(aka文件)的良好模式。这是有道理的:创建一个更好的模式,使 on 更好地运行Emacs以创建更好的模式...
用于处理来自其他LISP实现的REPL的各种[“劣等”]模式:Scheme,Common Lisp,Clojure等(劣质模式不以“LISP方言”结束。)
< / LI> 醇>当然,Emacs是一个通用的文本编辑器 - 恰好包括厨房水槽和烤面包机 - 甚至适合不喜欢括号的人(尽管这可能会产生一个真正好的问题) .emacs“config ...如果确实如此。”
现在,为了处理 Java 项目,我更喜欢 Eclipse IDE - 现在,如果只有他们可以包含一个好的编辑器: - / - 但是那只是野兽的本性......
尝试一下:你做得像。如果没有,继续前进。
仔细阅读emacswiki(以及实际尝试交互式教程)可能会带来更愉快的冒险。
快乐的编码。
答案 3 :(得分:4)
答案 4 :(得分:4)
更广泛的视角:Emacs显然是一个优秀的程序员编辑。 Lisp程序员往往是经验丰富的程序员,他们非常重视他们的工具。
是的,Emacs有一个陡峭的学习曲线,并没有配备训练轮,但Emacs非常强大。在训练有素的手中,一个令人难以置信的动力工具,在这个意义上就像Lisp一样。 Emacs是一个可编程编辑器,Lisp是一种可编程编程语言。它们齐头并进:))
Emacs和Lisp一起回归(70年代和80年代),与Stallman,Steel,Moon,Greenblat等一些常见的大牌贡献者一样。站在巨人的肩膀上更容易看到。
Emacs和Lisp已经存在了几十年,几乎在每个平台上 - 并且将在可预见的未来,因此学习它们的投资不会丢失。学习一个编辑非常好(多年来)确实取得了成果。
“他的工具以一位优秀的工匠而闻名。”
(是的,其中一些也适用于vi)。
答案 5 :(得分:3)
Emacs是一类文本编辑器。广为人知和使用的是GNU Emacs编辑器及其变体。 GNU Emacs本身几乎可以完全使用Emacs Lisp(Lisp的方言)进行定制。
由于GNU Emacs可以在Emacs Lisp中编程,因此Lisp程序员更容易定制编辑器而不是使用其他扩展语言的编辑器。
GNU Emacs有简单的方法来控制像Lisp系统这样的外部工具。例如,shell模式可以运行Lisp并在缓冲区中与它进行交互。
Lisp开发人员投入了大量时间来开发更复杂的GNU Emacs扩展,以控制外部Lisp并与之交互。
http://common-lisp.net/project/slime/
近年来,SLIME在Lisp社区中得到了广泛的应用。它最初是为Common Lisp编码而开发的。 SLIME提供了许多(主要是基于文本的)工具,作为一个总和构建Lisp开发环境:编辑支持,交互式工作的监听器,回溯,检查器等。 SLIME支持几种Common Lisp实现,并提供正在运行的Common Lisp系统和编辑器之间的通信。编辑器与运行的Common Lisp的这种集成在SLIME中非常广泛。
还有其他具有类似功能的Emacs编辑器:CMUCL和CCL的Hemlock,LispWorks编辑器,Allegro CL的编辑器和其他一些编辑器。它们通常提供更多基于GUI的方法,并非所有工具都实现为编辑器缓冲区。所有这些也可以与GNU Emacs和SLIME一起使用。
答案 6 :(得分:1)
是什么让Emacs如此出色(特别是对于Lisp开发)?
从内在完整的延展性。
用Lisp编写它使它特别适合编辑,转换和其他Lisp。这在(基本上)任何其他编辑器中都是可行的,但它不是,就Emacs而言。
编写Eclipse插件所需的工作 dwarfs 扩展Emacs,模拟e-lisp学习曲线(它不是我最喜欢的Lisp)。我会说有一个“引爆点”,在Emacs中实现“大”功能变得同样麻烦,但这可能是个人偏见。
我不知道扩展Vi [m]是多么容易/多难。
答案 7 :(得分:1)
Emacs作为lispers编写的编辑的传统,呃,lisping,反映在s表达式是一个基本的可编辑单元 - 在其他编辑器中,你可以移动,选择和按行或单词切割,但是Emacs你也可以通过s表达式做那些事情;有内置命令,如forward-sexp
。
因此,在编辑lisp源代码时,基本上非常有用,但最重要的是paredit,它提供了以优雅的方式操作sexp树的命令,这会让重构IDE变得尴尬其他语言。我很难想象一个严肃的lisp程序员,一旦熟悉paredit就不会那么高效。
最近,类似的功能被添加到其他编辑器中,但更多的是事后的想法。 Emacs的作者一直在Emacs内部编写Emacs的lisp部分,因此特定于lisp的功能具有一定程度的成熟度和集成度,我们许多Emacs用户认为这使我们在生产力方面具有优势。
答案 8 :(得分:1)
这个问题应该是一个明智的选择。答案很简单: Emacs (Emacs)Lisp 。 Emacs是一个Lisp环境,它已经很长很长时间了。例如,Lisp机器(所有这些机器)都基于Emacs上的Lisp环境。
只说(GNU)Emacs在Lisp中实现是真的但不完整。 Emacs (99.999%)Emacs Lisp。想想Emacs,因为Lisp更具交互性,并且可以扩展到操作缓冲区之类的东西。
答案 9 :(得分:1)
有趣的是,我在页面上搜索了“type”“typing”这样的字样 - 没有人提到Emacs是关于进行打字和导航文本更加舒适!通过仅使用键盘,您无法在emacs中执行任何操作。对于习惯于在编程时使用鼠标的人来说,这听起来像是一个小优势。这个优势显然不是最重要的,这不是你从一开始就可以使用的东西,因为命令要求你记住它们。但几个月之后,你会发现你可以比使用鼠标的人更快地做事。
Emacs或其中某些模式可能无法提供与其他现代IDE在智能感知或项目管理方面所做的许多好处,但在编辑代码文本时,那些现代IDE还有很多需要学习的东西: )