使用 Vim 进行 Lisp 开发 [英] Using Vim for Lisp development

查看:24
本文介绍了使用 Vim 进行 Lisp 开发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经断断续续地使用 Lisp 有一段时间了,但我开始更加认真地在 Lisp 中做一些真正的"工作.我是 Vim 的忠实粉丝,我想知道如何使用 Vim 作为我的 Lisp 开发编辑器来提高工作效率.欢迎使用插件、工作流程建议等.

I've been using Lisp on and off for a while but I'm starting to get more serious about doing some "real" work in Lisp. I'm a huge Vim fan and was wondering how I can be most productive using Vim as my editor for Lisp development. Plugins, work flow suggestions, etc. are all welcome.

请不要说使用 emacs",因为我已经开始使用 Vim 并且作为编辑器我真的很享受它.

Please don't say "use emacs" as I've already ramped up on Vim and I'm really enjoying it as an editor.

推荐答案

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

Limp aims to be a fully featured Common Lisp IDE for Vim. It defaults to SBCL, but can be changed to support most other implementations by replacing "sbcl" for your favourite lisp, in the file /usr/local/limp/latest/bin/lisp.sh

如今在讨论 Lisp 时,通常假定它是 Common Lisp,由 ANSI X3J13 标准化的语言(参见 HyperSpecPractical Common Lisp (一本很好的教科书)与 GNU Clisp、SBCL、CMUCL 等实现、AllegroCL 等等.

When discussing Lisp these days, it is commonly assumed to be Common Lisp, the language standardized by ANSI X3J13 (see the HyperSpec, and Practical Common Lisp for a good textbook) with implementations such as GNU Clisp, SBCL, CMUCL, AllegroCL, and many others.

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

Back to Limp. There are other solutions that are more light-weight, or try to do other things, but I believe in providing an environment that gives you things like bracket matching, highlighting, documentation lookup, i.e. making it a turn-key solution as much as possible.

Limp 存储库中,您会找到 SlimVim 项目以前的一些工作,即ECL (Embeddable Common Lisp) 接口,与更高版本 (7.1) 合并;Simon 还提供了尚未合并的 7.2 补丁.ECL 接口记录在 if_ecl.txt.

In the Limp repository you'll find some of the previous work of the SlimVim project, namely the ECL (Embeddable Common Lisp) interface, merged with later releases (7.1); Simon has also made patches to 7.2 available yet to be merged. The ECL interface is documented in if_ecl.txt.

短期的工作是做与 7.2 的合并,并提交一个补丁到 vim_dev 以使其合并到官方的 Vim 树中.

Short-term work is to do said merging with 7.2 and submit a patch to vim_dev to get it merged into the official Vim tree.

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

Which leads us to the long-term plans: having Lisp directly in Vim will make it convenient to start working on a SWANK front-end (the part of SLIME that runs in your Lisp, with slime.el being the part that runs in the editor - the frontend).

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

And somewhere in between, it is likely that all of Limp will be rewritten in Common Lisp using the ECL interface, making Limp easier to maintain (VimScript isn't my favourite) and being easier for users to customize.

官方 Limp 站点 不时出现故障,但正如所指出的,在 Vim.org 下载 应该总是有效的,支持组limp-devellimp-user 由 Google 网上论坛托管.如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入.大多数讨论都在跛行发展清单上进行.如果你喜欢 IRC,我会在 irc.freenode.net 上以tic"的身份加入 #limp.

The official Limp site goes down from time to time, but as pointed out, the download at Vim.org should always work, and the support groups limp-devel and limp-user are hosted with Google Groups. Don't hesitate to join if you feel you need a question answered, or perhaps even want to join in on development. Most of the discussion takes place on the limp-devel list. If you're into IRC, I'm in #limp on irc.freenode.net as 'tic'.

祝你好运!

这篇关于使用 Vim 进行 Lisp 开发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆