在我的lisp编程课程中,我使用了lispworks IDE试用版,这是一个非常好的IDE,但它仍然是一个试用版。我在寻找一个新的IDE。我看了这个视频https://www.youtube.com/watch?v=VnWVu8VVDbI。
其中,他使用粘液sbcl和quicklisp在emacs上使用普通的lisp编程。
我的问题是,这是怎么可能的? emacs不是伴随着它自己的lisp方言,也就是被称为Emacs的方言,还是它们彼此分离?
发布于 2018-07-11 08:50:15
设置Emacs和SBCL可能会花费您一些时间。
更新:
现在,我不会回答"portacle“或"lispbox”就像我在这里解释的!
先前的回答:
我强烈推荐你门柱 --也就是说,lispbox盒的更新/弟弟。Lispbox是为“out of the box”创建的--使用带有已安装粘液的emacs的lisp环境--模式很容易连接到sbcl和quicklisp安装(用于彼得·塞贝尔( Peter Seibel)的“实用通用Lisp”的读者)--某种emacs--为Lisp设置的emacs(或从Lisp初学者-程序员的角度来看,包括电池在内的emacs)。我一直在寻找Lispbox的“更新”--尽管同时手动安装了sbcl、quicklisp和slime --实际上,我认为Lispbox站点应该链接并提示到portacle,因为这是Lispbox的最新版本--这将节省我的时间。Lisp社区应该传播关于portacle的内容。(两者都为您提供准备就绪的emacs,然后连接到sbcl并安装了quicklisp -用于Lisp的quicklisp类似于Python的pip,可以从中央存储库中提取和安装Lisp包的包管理器,或者像emacs lisp的melpa一样)。(quicklisp的核心是asdf,一种旧的包管理器,但现在没有人使用asdf直接安装软件包,而是通过quicklisp进行安装)。
对于Windows用户,我强烈推荐工作的口香糖 (与当前版本的portacle .我希望他们能修好)。作者还写了一个不错的书 (2016年,但用德语)。
为了更容易地进入emacs
,这是非常复杂的,我也尝试过几次习惯它,我强烈推荐您德里克·巴纳斯关于emacs的视频教程,这是我为这个主题找到的最好的入门级教程之一。另外,他的普通lisp教程可能会给你一个好的开始。我总结了一些关键绑定(一组最小的键绑定),这些绑定是我在emacs中编写常见lisp时经常使用的。它确实是最小的。谁发现的更多,也能给我更多的小费。下面是一个非常小的emacs/粘液备忘单的链接,供初学者程序员使用。
如果您真的开始使用Lisp进行编程,那么Common Lisp HyperSpec
是很有帮助的--我会说,它是一个必要的工具--还有Edi创建的Lisp的Cookbook页面,还有他的书“有普通Lisp的食谱”。但是,由于Lisp与所有的C
-derived语言都有很大的不同,所以我强烈建议您从更多地解释lisp是什么以及它是如何工作的东西开始。彼得·塞贝尔( Peter )的Practical Common Lisp
和康拉德·巴斯基( Conrad Barski )的Land of Lisp
组合是我的首发。虽然作者们做得很好,但我认为C派生语言程序员进入Lisp的简单易懂和流畅的介绍还有待编写。
顺便说一句,如果您发现vim
更容易使用,那么有一种很好的方法可以使用emacs中的vim快捷方式--邪恶的模式--甚至更好、更棒的是太空飞船,它除了vim
快捷方式--它们非常具体的函数访问方式--主要是从按空格按钮开始(因此名为spacemacs
)。这是一个开源项目。
不幸的是,没有像Portacle一样的电池,包括lisp新手的空间地图。但也许我们中的一些人将在不久的将来建立这样的机制:)。Spacemacs太棒了!
对于emacs:我为初学者编写了emacs最小化命令( 在我的GitHubGist里 )。
发布于 2018-07-11 11:15:06
尽管对这个问题已经有了一些很好的答案,但我想在这里自己补充一个答案,主要是为了给Emacs中的Common开发提供一个很好的替代方案。
狡猾是一种黏液叉,它包含以下改进:
comint.el
完全重新设计REPLcompany
(流行的(代码)完成包)NAMED-READTABLES
、macrostep.el
和quicklisp的支持SLY跟踪煤泥的错误修复及其所有熟悉的特性(调试器、检查器、xref等)仍然可用,但有更好的整合。
在我看来,SLY是最近开始使用Emacs下的Common的最好方法,所以我鼓励人们查看它。
发布于 2018-07-11 04:27:20
埃马克斯是一个可扩展的编辑器(在Elisp中是可脚本的)。阅读它的文档。
它的黏液模式 (在emacs端用Elisp编写,在您的Lisp系统端用公共Lisp编写)能够与Common实现交互。但你需要安装它。读黏液文献。一些Linux发行版正在打包黏液(例如,Debian有一些slime
包)。
Emacs还有许多其他模式(即Elisp中提供的扩展),能够与各种其他编程语言实现和其他应用程序(shell、电子邮件、版本控制、.)进行交互。
顺便说一下,普通Lisp HyperSpec是免费的。读一读。SBCL也是记录在案。
--您不需要任何IDE来使用SBCL (或克莱普,或大多数通用Lisp实现.)。您可以使用REPL ( emacs
内部或外部)以及一些编辑器(例如埃马克斯 -without甚至slime
-、维姆、盖迪特、.)。当我使用SBCL尝试一些简单的代码时,我不使用SLIME (只使用REPL,可能是从某个编辑器复制/粘贴,然后编辑Lisp文件,然后是Lisp中的load
-ing )。黏液很方便,但却是一种你可以避免的奢侈品。但是,使用能够匹配括号(并跳过lisp注释)的编辑器更容易。但是,您可以用数千行代码和几十个文件编写一些通用Lisp程序-even --即使使用像Windows上的记事本 (或Leafpad或nano
)这样简单的编辑器。您的编辑器不需要“知道”Lisp (例如,它有一些模式,或一些语法变体),因为lisp的语法非常规则和简单。
请注意,编程语言是一种规范(在一些技术报告中给出,通常是英文的-- HyperSpec),不应该被它的实现所混淆(例如,一些软件,如SBCL或Clisp)。
实际上,我用emacs编写了我所有的Lisp程序,但是没有黏液。我开发了一个Lisp方言(GCC熔体)并实现了它,-it是我放弃的免费软件,但您仍然可以使用emacs,但不使用Slime。所以Slime实际上不是一个要求,即使是编写一个包含数十行的Lisp程序也是如此。黏液是你可以避免的奢侈品。emacs的Lisp模式已经足够了(甚至可以编写数千个通用Lisp行的程序)。
PS。我用通用Lisp编写的最大的程序是GCC熔体的预引导原始编译器,自从我自举 GCC融化后,我丢失了所有的大型程序(因为我不再需要它了)。IIRC -prebootstrap融化的东西--有成千上万行的通用Lisp。GCC熔体有120 than以上。
PPS。实际上,我建议向而不是推荐,如果您是新手,可以在公共Lisp中使用任何IDE。只使用REPL和一些编辑器(当然还有一个很好的Common实现,比如SBCL)。把黏液留给Lisp专家。只有当您对通用Lisp (和它的REPL)足够流利时,才开始使用slime。
https://stackoverflow.com/questions/51277230
复制相似问题