91

我一直在使用 Lisp 一段时间,但我开始更加认真地在 Lisp 中做一些“真正的”工作。我是 Vim 的忠实粉丝,我想知道如何使用 Vim 作为我的 Lisp 开发编辑器来提高工作效率。插件、工作流程建议等都是受欢迎的。

请不要说“使用 emacs”,因为我已经开始使用 Vim 并且作为编辑器我真的很喜欢它。

4

11 回答 11

51

Limp 旨在成为用于 Vim 的功能齐全的 Common Lisp IDE。它默认为 SBCL,但可以通过在文件 /usr/local/limp/latest/bin/lisp.sh 中为您最喜欢的 lisp 替换“sbcl”来更改以支持大多数其他实现

如今在讨论 Lisp 时,通常假定它是 Common Lisp,这是一种由 ANSI X3J13 标准化的语言(参见HyperSpecPractical 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-devellimp-user托管在 Google Groups 中。如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入。大多数讨论都在跛行发展清单上进行。如果你喜欢 IRC,我在 irc.freenode.net 上的 #limp 是“tic”。

祝你好运!

于 2008-09-19T11:28:59.527 回答
28

你可以让slimv休息一下。

于 2010-01-12T12:00:31.633 回答
19

这是Xach的一张很酷的图表,总结了当前的情况。

图表解释了几乎没有 VIM 用户同时也是 Lisp 程序员并且也可以破解它以使其成为一个好的 Lisp IDE...糟糕的替代文本 :)

于 2008-09-18T18:40:13.743 回答
7

查看 Limp 插件:

http://www.vim.org/scripts/script.php?script_id=2219

于 2008-09-18T17:43:14.287 回答
7

SLIME for EMACS 是一个很棒的 LISP 编程工具。最好的部分是将编辑器中编写的代码直接发送到实时 LISP 会话。您可以使用此处的提示从 Vim 中获得类似的行为:

http://technotales.wordpress.com/2007/10/03/like-slime-for-vim/

我调整了自己的脚本,以便可以发送到SBCLClojure会话。它使您的工作效率更高,并利用了 REPL。

":set lisp" 启动 Vim 的 lisp 缩进模式。但它不适用于像 Clojure 这样的方言。对于 Clojure,请使用VimClojure

有些人也喜欢LIMP

于 2008-09-18T18:09:47.233 回答
7

9 年后,现在我们有了 Vim 8 和 Neovim,它们都提供了与插件进行异步交互的能力。

vlime是一个优秀的、功能丰富的插件,它利用新的异步接口为 Common Lisp 提供类似 SLIME 的开发环境。

于 2017-07-17T02:51:16.233 回答
6
  • Vim 附加组件:彩虹括号、Lisp 语法
  • SBCL 附加组件:rlwrap、sb-aclrepl
  • 工作流程:具有多个终端窗口的 Ion3(或其他一些平铺的 WM)。

    • 在 Vim 中编辑 Lisp
    • 切换到 Lisp 窗口(当然使用键盘)
    • 使用 Cr 调用该行以重新加载有问题的 ASDF 系统,以便您的更改生效。
    • 对小片段/更改使用 X Window 复制/粘贴。
    • 大量使用 DESCRIBE、TRACE 和 APROPOS。
    • 重复。
于 2009-02-17T10:31:48.300 回答
5

:设置口齿不清

Vim 有一个模式可以帮助你按照 Lisp 标准缩进你的代码。

此外,我修改了 lispwords 以更改 vim 缩进我的代码的方式。

:setl lw-=if (在 ~/.vim/ftplugin/lisp.vim 中)

于 2008-09-18T18:00:44.167 回答
3

你可以试试 Emacs with Vim emulation,不是很完美,但可能有点熟悉。我认为如果你使用像 Slime 或 DrScheme 之类的东西进行迭代开发,Lisp 会大放异彩,所有其他编辑器都会觉得不对劲。

于 2008-09-18T17:45:43.843 回答
2

似乎有人尝试在 Vim 中实现类似 SLIME 的 Lisp 集成,但没有一个真正达到真正有用的程度。我认为 ECL 的集成已经完成,但尚未提交上游。

您应该从Cliki 的有关 Vim 的页面中找到所有相关链接。

于 2008-09-19T10:23:48.390 回答
1

我知道你说过不要告诉你使用 Emacs。

使用 Emacs。

说真的,Emacs的SLIME设置几乎是 Lisp标准开发平台,而且有很好的理由。

于 2008-09-18T18:05:11.783 回答