使用Vim进行Lisp开发

时间:2008-09-18 17:40:10

标签: vim ide lisp common-lisp

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

请不要说“使用emacs”,因为我已经加入了Vim,我真的很喜欢它作为编辑。

11 个答案:

答案 0 :(得分:51)

Limp旨在成为Vim的全功能Common Lisp IDE。它默认为SBCL,但可以通过在文件/usr/local/limp/latest/bin/lisp.sh

中替换“sbcl”来替换大多数其他实现来支持你最喜欢的lisp。

这些天讨论Lisp时,通常假设是Common Lisp,这是ANSI X3J13标准化的语言(参见the HyperSpecPractical Common Lisp是一本优秀的教科书),其实现如GNU Clisp, SBCL,CMUCL,AllegroCL等等。

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

the Limp repository中,你会发现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不是我最喜欢的),并且用户更容易定制。

official Limp site会不时发生变化,但正如所指出的,download at Vim.org应该始终有效,而支持小组limp-devellimp-user则由Google托管组。如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入。大多数讨论都发生在limp-devel列表中。如果你进入IRC,我在irc.freenode.net上的#limp作为'tic'。

祝你好运!

答案 1 :(得分:28)

你可以让slimv休息一下。

答案 2 :(得分:18)

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

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 :)

答案 3 :(得分:8)

用于EMACS的SLIME是LISP编程的绝佳工具。最好的部分是将编辑器中编写的代码直接发送到实时LISP会话。你可以使用这里的提示从Vim中获得类似的行为:

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

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

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

有些人也喜欢LIMP

答案 4 :(得分:7)

答案 5 :(得分:5)

:设置lisp

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

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

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

答案 6 :(得分:5)

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

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

答案 7 :(得分:3)

你可以试试Emacs和Vim仿真,但并不完美,但它可能有些熟悉。我认为如果使用像Slime或DrScheme这样的东西进行迭代开发,Lisp会发光,所有其他编辑都觉得错误。

答案 8 :(得分:2)

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

使用Emacs。

严重的是,Emacs的SLIME设置几乎是 Lisp的标准开发平台,并且有很好的理由。

答案 9 :(得分:2)

似乎已经尝试过在Vim中使用类似SLIME的Lisp集成,但是没有一个真正有效地需要它。我认为ECL的集成已经完成,但并未在上游实施。

您应该找到Cliki's page about Vim的所有相关链接。

答案 10 :(得分:2)

这里我们9年后,现在我们有了Vim 8和Neovim,它们都能够异步地与插件进行交互。

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