使用Vim进行Lisp开发

Dre*_*son 86 lisp ide vim common-lisp

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

请不要说"使用emacs",因为我已经加入了Vim,我真的很喜欢它作为一名编辑.

Mik*_*son 51

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

在最近讨论Lisp时,通常假设是Common Lisp,这是ANSI X3J13标准化的语言(参见HyperSpec,以及一本优秀教科书的Practical Common Lisp),其实现包括GNU Clisp,SBCL,CMUCL,AllegroCL等等.其他.

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

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不是我最喜欢的),并且用户更容易定制.

官方网站的跛行下降不时,但正如指出的那样,下载在Vim.org应该总是工作,和支持团体跛行devel的跛行用户与谷歌网上论坛托管.如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入.大多数讨论都发生在limp-devel列表中.如果你进入IRC,我在irc.freenode.net的#limp中就是'tic'.

祝好运!

  • 我糊涂了."答案"似乎是一些选项的建议,例如使用Limp,但根本没有解释如何实现这一点.我认为问题是,如何将Vim与SBCL一起使用/无论如何.这并没有真正回答这个问题,所以我对所有的赞成都感到有些困惑.您是否介意了解如何实际设置此环境并开始使用? (4认同)
  • 这项工作的现状如何?你还对使用它感兴趣吗? (3认同)
  • 正如其他人所指出的,上面的大多数链接(以及 vim.org 上的软页面)早已损坏。但是,您可以在 https://github.com/mikaelj/limp 找到几乎所有内容(.vim 文件和相关文档) (2认同)

osd*_*sdf 29

您可能会给slimv休息.

  • 一直在使用slimv; 它很棒.在空间中没有别的比较. (2认同)

Luí*_*ira 18

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

图解释说,几乎没有VIM用户也是Lisp程序员,也可以破解它使它成为一个很好的Lisp IDE ...糟糕的替代文字:)

  • 那太傻了.您不需要C来自定义Vim.Vim可以用自己的语言开箱即用,大多数构建版本也支持Ruby和Python脚本. (60认同)
  • 绿色和蓝色应该相交. (9认同)
  • 那么,想要将VIM用于Common Lisp的VIM用户是所有VIM用户的核心?也许我在这里遗漏了一些东西...... (6认同)

Bri*_*ian 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.


Dav*_*ood 7

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

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


gra*_*ywh 5

:设置lisp

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

另外,我修改了lispwords以改变vim如何缩进我的代码.

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


Les*_*zer 5

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

    • 在Vim中编辑Lisp
    • 切换到Lisp窗口(当然使用键盘)
    • 使用Cr调用该行以重新加载有问题的ASDF系统,以便您的更改生效.
    • 使用X Window复制/粘贴来获取小片段/更改.
    • 大量使用DESCRIBE,TRACE和APROPOS.
    • 重复.