除了Emacs之外,还有哪些适用于Lisp编程的好的编辑器?

18

我正在寻找一种替代方案,因为我发现Emacs很难使用。我更想使用一个支持我熟悉常用快捷键的编辑器,例如箭头键来移动光标,CTRL+SHIFT+RightArrow选中下一个单词等等。

基本上,我不想重新学习所有熟悉的快捷键,只是为了使用Emacs。

有人可以推荐一个适合我的编辑器吗?

另外一件事 - Notepad++支持LISP语法着色,但它没有像Emacs那样集成的LISP控制台。我只需要打开一个Notepad ++窗口和一个命令行窗口,同时使用命令行运行程序,这样可以吗?


也许更有趣的问题是“你为什么一开始想要使用Emacs?”如果你决定使用它,你可以配置键盘命令以按照自己的意愿工作。 - grettke
我怀疑,由于它严重依赖于LISP,它对语言结构有很多了解(用于语法着色等)。 - paxdiablo
16个回答

18
首先,Emacs上可以使用箭头键。(Emacs忠实粉会告诉你Ctrl-f/b/p/n更好用,但你不必听他们的。)如果箭头键不能正常工作,那么可能存在问题。
最近版本的Emacs带有cua-mode模式,它会使所有其他常见的快捷键如Ctrl-x/c/v剪切-复制-粘贴、shift加箭头选择等也能正常工作。如果它们不能正常工作,则输入"M-x"(大多数键盘上为Alt-x) cua-mode即可。
通常来说,如果您想让特定的按键调用某个函数,则输入"M-x global-set-key [回车] [按下按键] [键入函数名称]",例如M-x global-set-key RET [按下向下箭头] next-line RET。
Emacs是由Lisp程序员为Lisp设计的,并且在几十年间一直是标准的Lisp编辑器,因此仅仅因为拥有每一个改进想法的实现,它就成为了最好的Lisp编辑器。

8

使用DrScheme。它具备你所期望的所有标准键绑定。这里是我使用它的笔记(链接)。是的,它是为Scheme构建的,但也许它会很适合你。


6

你可以试试LispIDE。虽然它有点基础,但可能会对你有所帮助。


太棒了!在我看来比使用Emacs好多了。 - Sandeep Datta
我喜欢Notepad++和Sublime,因为它们支持自动缩进。 - Lime

5

你不仅想使用Emacs,还需要使用SLIME。 SLIME将允许您连接到运行Swank后端的Lisp REPL。您可以连接到服务器进程并开始与其交互。看一下SLIME首页


4

Zeus程序员编辑器具有可配置的语法高亮功能,因此可以将其配置为Lisp语言高亮。

Zeus甚至拥有Emacs键盘仿真模式和完全可编程,但不幸的是它不能用Lisp进行编程 ;)

编辑:针对Luís Oliveira的评论:他正在寻找一个Lisp IDE。

Zeus具有项目/工作区管理、编译器/链接器/工具支持、类浏览、代码完成、集成版本控制等IDE的许多功能。

但Zeus不仅仅是一个IDE,因为它提供了许多IDE的功能,而不受任何特定语言的限制,实际上就像Emacs一样。


OP 不是在寻找语法高亮,那很容易。他在寻找一个 Lisp IDE。 - Luís Oliveira
2
他还说:“Notepad++ 支持 LISP 语法着色,但它没有像 Emacs 那样集成的 LISP 控制台。”这个名字是怎么回事? - Luís Oliveira
一个没有连接到REPL的Lisp IDE有点毫无意义。 - Svante

3
我曾经尝试过寻找一个比emacs更好的编辑器来编写我的scheme代码,但即使使用emacs也会遇到一些麻烦,但它仍然是最好的选择。jEdit是次佳之选,但这就像在蛋糕、锯末和泥土之间做出选择,锯末是第二好的。
使用Emacs配合paredit模式进行S表达式的结构化编辑非常方便。再加上括号高亮模式,效果更佳。
使用emacs的好处是,其扩展语言是lisp,因此这是学习lisp的一个很好的方式。

1

它们非常相似。大多数人说LISP时指的是Scheme。 - helloandre
Scheme是一种Lisp方言,强调函数式编程。 - Svante
Scheme是Lisp方言。它非常适合函数式编程,但它不依赖于特定的方法。 - Jonathan Arkell
即使Logo是Lisp语言,但没有人在Emacs中编辑Logo... - Michael Paulukonis

1

我怀疑几乎所有编写LISP程序的人都会使用emacs。如果你必须与真正的LISP程序员一起工作,那么你可能会处于劣势之中。

此外,一个好的程序员不应该只依赖于一个编辑器。学会不依赖基于Windows的按键加速。


不,现在绝对不是“几乎任何人”都使用Emacs进行Common Lisp编程。我可以从自己作为Vim Lisper与Emacs用户合作的经验中得出结论,一个人在与“真正的Lisp程序员”合作时也不会处于劣势。 - Leslie P. Polzer

1
除了已经提到的CUSP之外,还有ABLE,这是一个相对简单的Lisp编辑器,具有REPL集成等功能。就个人而言,我没有使用它的经验,因为我很满意SLIME。

1

我可能有点晚了,但是普通的vi(1)——传统的遗留版vi——非常好用,具有括号匹配和至少一些基本的s-exp功能。设置您的EXRC以使用。

:set ai lisp aw

这不是SLIME,但它是某种东西。


是的,你也可以使用vim :set sm。 - superK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接