我一直在使用Lisp一段时间,但我开始更加认真地在Lisp中做一些“真正的”工作。我是一个巨大的Vim粉丝,并且想知道如何使用Vim作为我的Lisp开发编辑器来提高效率。插件,工作流程建议等都是受欢迎的。
请不要说“使用emacs”,因为我已经加入了Vim,我真的很喜欢它作为编辑。
答案 0 :(得分:51)
Limp旨在成为Vim的全功能Common Lisp IDE。它默认为SBCL,但可以通过在文件/usr/local/limp/latest/bin/lisp.sh
中替换“sbcl”来替换大多数其他实现来支持你最喜欢的lisp。这些天讨论Lisp时,通常假设是Common Lisp,这是ANSI X3J13标准化的语言(参见the HyperSpec,Practical 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-devel和limp-user则由Google托管组。如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入。大多数讨论都发生在limp-devel列表中。如果你进入IRC,我在irc.freenode.net上的#limp作为'tic'。
祝你好运!答案 1 :(得分:28)
你可以让slimv休息一下。
答案 2 :(得分:18)
这是Xach的一个很酷的图表,总结了当前的情况。
答案 3 :(得分:8)
用于EMACS的SLIME是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。
答案 4 :(得分:7)
答案 5 :(得分:5)
:设置lisp
Vim有一种模式可以帮助您通过Lisp标准缩进代码。
另外,我修改了lispwords来改变vim缩进代码的方式。
:setl lw- = if(在〜/ .vim / ftplugin / lisp.vim中)
答案 6 :(得分:5)
工作流程:具有多个终端窗口的Ion3(或其他一些平铺的WM)。
答案 7 :(得分:3)
你可以试试Emacs和Vim仿真,但并不完美,但它可能有些熟悉。我认为如果使用像Slime或DrScheme这样的东西进行迭代开发,Lisp会发光,所有其他编辑都觉得错误。
答案 8 :(得分:2)
答案 9 :(得分:2)
似乎已经尝试过在Vim中使用类似SLIME的Lisp集成,但是没有一个真正有效地需要它。我认为ECL的集成已经完成,但并未在上游实施。
您应该找到Cliki's page about Vim的所有相关链接。
答案 10 :(得分:2)
这里我们9年后,现在我们有了Vim 8和Neovim,它们都能够异步地与插件进行交互。
vlime是一个出色的,功能丰富的插件,它利用新的异步接口为Common Lisp提供类似SLIME的开发环境。