我一直在使用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标准化的语言(参见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'.
祝好运!
您可能会给slimv休息.
这是Xach的一个很酷的图表,总结了当前的情况.
用于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.
查看Limp插件:
http://www.vim.org/scripts/script.php?script_id=2219
:设置lisp
Vim有一种模式可以帮助您通过Lisp标准缩进代码.
另外,我修改了lispwords以改变vim如何缩进我的代码.
:setl lw- = if(在〜/ .vim/ftplugin/lisp.vim中)
Vim附加组件:彩虹括号,Lisp语法
SBCL附加组件:rlwrap,sb-aclrepl
工作流程:具有多个终端窗口的Ion3(或其他一些平铺的WM).
在Vim中编辑Lisp
切换到Lisp窗口(当然使用键盘)
使用Cr调用该行以重新加载有问题的ASDF系统,以便您的更改生效.
使用X Window复制/粘贴来获取小片段/更改.
大量使用DESCRIBE,TRACE和APROPOS.
重复.