首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你能用emacs用普通的lisp语言编程吗?

你能用emacs用普通的lisp语言编程吗?
EN

Stack Overflow用户
提问于 2018-07-11 04:23:35
回答 4查看 2.4K关注 0票数 5

在我的lisp编程课程中,我使用了lispworks IDE试用版,这是一个非常好的IDE,但它仍然是一个试用版。我在寻找一个新的IDE。我看了这个视频https://www.youtube.com/watch?v=VnWVu8VVDbI

其中,他使用粘液sbcl和quicklisp在emacs上使用普通的lisp编程。

我的问题是,这是怎么可能的? emacs不是伴随着它自己的lisp方言,也就是被称为Emacs的方言,还是它们彼此分离?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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里 )。

票数 9
EN

Stack Overflow用户

发布于 2018-07-11 11:15:06

尽管对这个问题已经有了一些很好的答案,但我想在这里自己补充一个答案,主要是为了给Emacs中的Common开发提供一个很好的替代方案。

狡猾是一种黏液叉,它包含以下改进:

  • 基于Emacs自己的全功能comint.el完全重新设计REPL
  • 通过一个新的密匙标签来进行实时代码注解
  • 一致的交互按钮界面。所有东西都可以复制到REPL。
  • 不需要额外的包来使用company (流行的(代码)完成包)
  • 默认情况下,控制肋骨是启用的,并随需加载ASDF。
  • NAMED-READTABLESmacrostep.el和quicklisp的支持

SLY跟踪煤泥的错误修复及其所有熟悉的特性(调试器、检查器、xref等)仍然可用,但有更好的整合。

在我看来,SLY是最近开始使用Emacs下的Common的最好方法,所以我鼓励人们查看它。

票数 5
EN

Stack Overflow用户

发布于 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。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51277230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档