【问题标题】:Using Vim for Lisp development使用 Vim 进行 Lisp 开发
【发布时间】:2010-09-10 19:44:07
【问题描述】:

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

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

【问题讨论】:

  • 哪种 Lisp,Common Lisp?
  • 在这种情况下,是的,Common Lisp。我也在 Scheme 中进行了一些玩弄,但这更多是用于休闲探索性编程。
  • 请参阅Lisp in Vim with Slimv or Vlime,在此我提供了使用 Slimv 或 Vlime 在 Vim 中进行 Common Lisp 编程的详细说明,这两个流行的 Vim 插件为 Common Lisp 提供了类似 SLIME 的交互式编程环境。跨度>

标签: vim ide lisp common-lisp


【解决方案1】:

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 等等。

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

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 网上论坛托管。如果您觉得需要回答问题,或者甚至想参与开发,请不要犹豫加入。大多数讨论都在跛行发展清单上进行。如果你喜欢 IRC,我会在 irc.freenode.net 上以“tic”的身份加入 #limp。

祝你好运!

【讨论】:

  • 这部作品的状态如何?你还有兴趣使用它吗?
  • 我很困惑。 “答案”似乎是一些选项的建议,例如使用 Limp,但根本没有解释如何实现这一点。我认为问题是,我如何将 Vim 与 SBCL/其他东西一起使用。这并没有真正回答这个问题,所以我对所有的赞成票有点困惑。您介意详细介绍一下如何实际设置此环境并开始使用吗?
  • Limp 似乎不再维护:站点已关闭,最后一次更改是在 2008 年。
  • 正如其他人所指出的,上面的大多数链接(以及 vim.org 上的跛行页面上的链接)早已损坏。但是,您可以在github.com/mikaelj/limp 找到几乎所有内容(.vim 文件和相关文档)
【解决方案2】:

你可以让slimv 休息一下。

【讨论】:

  • +1 刚从 slimv 开始,所以几乎对它一无所知,但作为 emacs 的 slime 的真正替代品,它开箱即用似乎工作得非常好。它也有最新版本(v0.9.2 07-nov-2011),而 limp 自 2008 年以来没有更新。
  • 使用slimv有一段时间了;太好了。空间中没有其他东西可以比较。
【解决方案3】:

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

【讨论】:

  • 这很愚蠢。你不需要 C 来自定义 Vim。 Vim 可以使用自己的语言开箱即用地编写脚本,并且大多数构建也支持 Ruby 和 Python 脚本。
  • 那么,想用VIM for Common Lisp的VIM用户是所有VIM用户的核心??也许我在这里遗漏了一些东西......
  • @Luis:实际上,蓝点位于中心这一事实使得绿色点不可能不与它相交。我会说图表的作者缺少几何的工作原理。
  • 绿色和蓝色应该相交。
【解决方案4】:

【讨论】:

    【解决方案5】:

    用于 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

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

        【解决方案7】:
        • Vim 附加组件:彩虹括号、Lisp 语法
        • SBCL 附加组件:rlwrap、sb-aclrepl
        • 工作流程:具有多个终端窗口的 Ion3(或其他平铺式 WM)。

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

        【讨论】:

          【解决方案8】:

          :设置口齿不清

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

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

          :setl lw-=if (in ~/.vim/ftplugin/lisp.vim)

          【讨论】:

          • 缩进很容易。提供一个好的 IDE 更为重要。实际上,VIM 甚至不会像 Emacs/SLIME 那样做到这一点(缩进)。
          【解决方案9】:

          您可以尝试使用带有 Vim 仿真的 Emacs,虽然并不完美,但可能有些熟悉。我认为如果你使用 Slime 或 DrScheme 之类的东西进行迭代开发,Lisp 会大放异彩,所有其他编辑器都会觉得不对。

          【讨论】:

            【解决方案10】:

            似乎已经尝试过在 Vim 中实现类似 SLIME 的 Lisp 集成,但没有一个真正达到真正有用的程度。不过,我认为 ECL 的集成已经完成,但尚未提交到上游。

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

            【讨论】:

              【解决方案11】:

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

              使用 Emacs。

              说真的,Emacs 的 SLIME 设置几乎是 Lisp 的标准开发平台,而且有充分的理由。

              【讨论】:

              • 我仍然坚持这个答案,尽管截至 2011 年 4 月人们仍在投票否决它。我喜欢 Vim 并且每天都在使用它,但没有什么比在 Lisp 编写的环境中编写 Lisp 更好的了。 “我希望我能让我的编辑对我的 Lisp 服务器中发生的事情做出反应。哦,等等!我可以!”是一种很棒的感觉。再说一遍:我喜欢 Vim,但我认为 Emacs 是一个更好的与 Lisp 一起工作的编辑器。
              • 跟进:6 年过去了,你们还在为这个已有近十年历史的答案投票吗?好的,我们明白了,我们明白了! ? 我仍然没有改变它。
              • 我认为 slimv 还可以,事实上它让我在没有 emacs 的情况下更好地处理 lisp 代码。 vi 已经使用了几十年,因为它是 unix/linux/ICL 环境的默认设置。
              猜你喜欢
              • 2010-11-02
              • 1970-01-01
              • 1970-01-01
              • 2011-06-19
              • 1970-01-01
              • 2020-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多