是什么使Emacs成为Lisp程序员的优秀编辑器?
每当我查看Lisp的编辑器时,不可避免地会首先出现Emacs。从一个对Emacs不太了解的人的角度来看,相对于Vim、Eclipse等东西,Emacs有什么好处?Emacs对Lisp很有用,因为Emacs是用Lisp编写的(大部分是用Lisp编写的)。设计和实现Emacs的人需要一个非常适合编写Lisp代码的编辑器。有一些东西“使Emacs成为Lisp程序员[/hacker]的良好环境”:是什么使Emacs成为Lisp程序员的优秀编辑器?,emacs,lisp,Emacs,Lisp,每当我查看Lisp的编辑器时,不可避免地会首先出现Emacs。从一个对Emacs不太了解的人的角度来看,相对于Vim、Eclipse等东西,Emacs有什么好处?Emacs对Lisp很有用,因为Emacs是用Lisp编写的(大部分是用Lisp编写的)。设计和实现Emacs的人需要一个非常适合编写Lisp代码的编辑器。有一些东西“使Emacs成为Lisp程序员[/hacker]的良好环境”: emacs的“高级”部分都是用elisp编写的;模块/模式可编辑为套件,整个elisp环境处于“活动”状态
我不知道扩展Vi[m]有多容易/难。slime Emacs模式与“劣等”lisp交互以获得更好的lisp体验:Emacs将要求lisp:
- 标识符的完成
- 文件
- 测试新代码
- 调试
- 检查对象
事实上,Emacs是由lisp hacker编写的,这使得专门为lisp编写的部分特别出色。Emacs作为lispers为呃lisping编写的编辑器的传统体现在s表达式是一个基本的可编辑单元——在其他编辑器中,您可以按行或字移动、选择和剪切,但在Emacs中,您也可以通过s表达式来完成这些操作;有一些内置命令,如
forward sexp
因此,在编辑lisp源代码时,这基本上是有用的,但除此之外,还有一个,它提供了以优雅的方式操纵sexps树的命令,这将使重构其他语言的IDE感到尴尬。我很难想象一个认真的lisp程序员在熟悉paredit后不会有更高的工作效率
最近,类似的功能也被添加到其他编辑器中,但更多的是事后考虑。Emacs的作者一直在Emacs内部编写Emacs的lisp部分,因此lisp特定的功能具有一定程度的成熟度和集成度,我们许多Emacs用户认为这使我们在生产力方面具有优势。
努夫说。Emacs是一种文本编辑器。广泛使用的是GNU Emacs编辑器及其变体。GNU Emacs本身几乎完全可以使用Emacs Lisp(Lisp的一种方言)进行自定义 由于GNU Emacs可以在Emacs Lisp中编程,因此Lisp程序员定制编辑器比使用其他扩展语言的编辑器更容易 GNU Emacs有简单的方法来控制外部工具,如Lisp系统。例如,shell模式使运行Lisp并在缓冲区中与之交互成为可能 Lisp开发人员已经投入了大量的时间来开发GNU Emacs的更复杂的扩展,以控制外部Lisp并与之交互 近年来,SLIME在Lisp社区得到了广泛的使用。它最初是为用CommonLisp进行编码而开发的。SLIME提供了很多工具,主要是基于文本的工具,它们构成了一个Lisp开发环境:编辑支持、交互式工作的侦听器、回溯、检查器等等。SLIME支持几种常见的Lisp实现,并提供运行中的常见Lisp系统和编辑器之间的通信。在SLIME中,编辑器与运行的公共Lisp的这种集成非常广泛
还有其他类似Emacs的编辑器具有类似的功能:CMUCL和CCL的Hemlock、LispWorks编辑器、Allegro CL的编辑器和其他一些。它们通常提供更基于GUI的方法,并且并非所有工具都实现为编辑器缓冲区。所有这些都可以与GNU Emacs和SLIME一起使用。这个问题应该是无需思考的。答案很简单:Emacs是(Emacs)Lisp。Emacs是一个Lisp环境,而且这种环境已经存在很长很长时间了。例如,Lisp机器(全部)在很大程度上基于Emacs的Lisp环境 仅说(GNU)Emacs是用Lisp实现的,这是正确的,但并不完整。Emacs是(99.999%)Emacs Lisp。把Emacs想象成Lisp,它变得更具交互性,并扩展到操作缓冲区之类的东西。有点br