我断断续续地使用 Lisp 一段时间了,但我开始更加认真地用 Lisp 做一些“真正的”工作。我是 Vim 的超级粉丝,并且想知道如何使用 Vim 作为 Lisp 开发的编辑器来最高效地工作。插件、工作流程建议等。欢迎大家。

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

有帮助吗?

解决方案

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

现在讨论 Lisp 时,通常会假设是 Common Lisp,这是 ANSI X3J13 标准化的语言(请参阅 超规格, , 和 实用 Common Lisp 一本好的教科书),具有 GNU CLIsp、SBCL、CMUCL、AllegroCL 等实现。

回到林普。还有其他更轻量级的解决方案,或者尝试做其他事情,但我相信提供一个环境,为您提供括号匹配、突出显示、文档查找等功能,即尽可能使其成为交钥匙解决方案。

跛行存储库 你会发现 SlimVim 项目之前的一些工作,即 ECL(Embeddable Common Lisp)接口,与后续版本(7.1)合并;Simon 还为 7.2 提供了尚未合并的补丁。ECL 接口记录在 if_ecl.txt.

短期工作是与 7.2 合并并向 vim_dev 提交补丁以将其合并到官方 Vim 树中。

这引导我们制定长期计划:直接在 Vim 中使用 Lisp 可以方便地开始处理 SWANK 前端(SLIME 在 Lisp 中运行的部分,slime.el 是在编辑器中运行的部分 - 前端)。

介于两者之间,很可能所有 Limp 都将使用 ECL 接口在 Common Lisp 中重写,使 Limp 更易于维护(VimScript 不是我最喜欢的)并且更容易让用户自定义。

官方 Limp 网站 会不时下降,但正如所指出的, 在 Vim.org 下载 应该始终有效,并且支持小组 跛行发展跛行用户 由 Google 网上论坛托管。如果您觉得自己需要解答问题,或者甚至想参与开发,请毫不犹豫地加入。大多数讨论都发生在 limp-devel 列表上。如果您喜欢 IRC,我会在 irc.freenode.net 上以“tic”的身份出现在 #limp 中。

祝你好运!

其他提示

你可能会给 苗条 休息。

这是一个很酷的图表 哈克 这总结了目前的情况。

diagram explaining that there are nearly no VIM users that are also Lisp programmers and can also hack it to make it a good Lisp IDE... lousy alt text :)

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

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

我调整了自己的脚本,以便我可以发送到 SBCL 或者 克洛尤尔 会议。它可以提高您的工作效率并利用 REPL。

":set lisp" 启动 Vim 的 lisp 缩进模式。但它不适用于 Clojure 等某些方言。对于 Clojure,使用 VimClojure.

有些人喜欢 跛行 还。

:设置口齿不清

Vim 有一种模式可以帮助您按照 Lisp 标准缩进代码。

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

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

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

    • 在 Vim 中编辑 Lisp
    • 切换到 Lisp 窗口(当然使用键盘)
    • 使用 C-r 调用重新加载相关 ASDF 系统的行,以便您的更改生效。
    • 使用 X Window 复制/粘贴进行小片段/更改。
    • 大量使用 DESCRIBE、TRACE 和 APROPOS。
    • 重复。

你可以给Emacs用Vim模拟一下,虽然不是很完美,但是可能有点熟悉。我认为如果你使用 Slime 或 DrScheme 之类的东西进行迭代开发,Lisp 就会大放异彩,所有其他编辑器都会觉得错了。

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

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

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

使用 Emacs。

严重的是, 粘液 Emacs 的设置非常简单 Lisp 的标准开发平台,这是有充分理由的。

似乎有人尝试过在 Vim 中进行类似 SLIME 的 Lisp 集成,但都没有真正达到真正有用的程度。我认为 ECL 的集成已经完成,但尚未向上游承诺。

您应该找到所有相关链接 关于 Vim 的 Cliki 页面.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top