我一直在使用 Lisp 一段时间,但我开始更加认真地在 Lisp 中做一些“真正的”工作。我是 Vim 的忠实粉丝,我想知道如何使用 Vim 作为我的 Lisp 开发编辑器来提高工作效率。插件、工作流程建议等都是受欢迎的。
请不要说“使用 emacs”,因为我已经开始使用 Vim 并且作为编辑器我真的很喜欢它。
我一直在使用 Lisp 一段时间,但我开始更加认真地在 Lisp 中做一些“真正的”工作。我是 Vim 的忠实粉丝,我想知道如何使用 Vim 作为我的 Lisp 开发编辑器来提高工作效率。插件、工作流程建议等都是受欢迎的。
请不要说“使用 emacs”,因为我已经开始使用 Vim 并且作为编辑器我真的很喜欢它。
Limp 旨在成为用于 Vim 的功能齐全的 Common Lisp IDE。它默认为 SBCL,但可以通过在文件 /usr/local/limp/latest/bin/lisp.sh 中为您最喜欢的 lisp 替换“sbcl”来更改以支持大多数其他实现
如今在讨论 Lisp 时,通常假定它是 Common Lisp,这是一种由 ANSI X3J13 标准化的语言(参见HyperSpec和Practical Common Lisp以获得良好的教科书),具有 GNU Clisp、SBCL、CMUCL、AllegroCL 等实现其他。
回到跛行。还有其他更轻量级的解决方案,或者尝试做其他事情,但我相信提供一个环境,为您提供括号匹配、突出显示、文档查找等功能,即尽可能使其成为交钥匙解决方案.
在Limp 存储库中,您会发现 SlimVim 项目的一些以前的工作,即 ECL(Embeddable Common Lisp)接口,与后来的版本(7.1)合并;Simon 还提供了尚未合并的 7.2 补丁。ECL 接口记录在if_ecl.txt中。
短期的工作是与 7.2 进行合并,然后向 vim_dev 提交补丁以将其合并到官方的 Vim 树中。
这让我们有了长远的计划:直接在 Vim 中使用 Lisp 可以方便地开始在 SWANK 前端工作(在 Lisp 中运行的 SLIME 部分,其中 slime.el 是在编辑器 - 前端)。
介于两者之间的某个地方,很可能所有 Limp 都将使用 ECL 接口在 Common Lisp 中重写,从而使 Limp 更易于维护(VimScript 不是我最喜欢的)并且更易于用户自定义。
官方的Limp 网站不时出现故障,但正如所指出的,在 Vim.org 上的下载应该始终有效,并且支持组limp-devel和limp-user托管在 Google Groups 中。如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入。大多数讨论都在跛行发展清单上进行。如果你喜欢 IRC,我在 irc.freenode.net 上的 #limp 是“tic”。
祝你好运!
你可以让slimv休息一下。
这是Xach的一张很酷的图表,总结了当前的情况。
SLIME for EMACS 是一个很棒的 LISP 编程工具。最好的部分是将编辑器中编写的代码直接发送到实时 LISP 会话。您可以使用此处的提示从 Vim 中获得类似的行为:
http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/
我调整了自己的脚本,以便可以发送到SBCL或Clojure会话。它使您的工作效率更高,并利用了 REPL。
":set lisp" 启动 Vim 的 lisp 缩进模式。但它不适用于像 Clojure 这样的方言。对于 Clojure,请使用VimClojure。
有些人也喜欢LIMP。
9 年后,现在我们有了 Vim 8 和 Neovim,它们都提供了与插件进行异步交互的能力。
vlime是一个优秀的、功能丰富的插件,它利用新的异步接口为 Common Lisp 提供类似 SLIME 的开发环境。
工作流程:具有多个终端窗口的 Ion3(或其他一些平铺的 WM)。
:设置口齿不清
Vim 有一个模式可以帮助你按照 Lisp 标准缩进你的代码。
此外,我修改了 lispwords 以更改 vim 缩进我的代码的方式。
:setl lw-=if (在 ~/.vim/ftplugin/lisp.vim 中)
你可以试试 Emacs with Vim emulation,不是很完美,但可能有点熟悉。我认为如果你使用像 Slime 或 DrScheme 之类的东西进行迭代开发,Lisp 会大放异彩,所有其他编辑器都会觉得不对劲。
似乎有人尝试在 Vim 中实现类似 SLIME 的 Lisp 集成,但没有一个真正达到真正有用的程度。我认为 ECL 的集成已经完成,但尚未提交上游。
您应该从Cliki 的有关 Vim 的页面中找到所有相关链接。