代码之家  ›  专栏  ›  技术社区  ›  Drew Olson

使用VIM开发Lisp

  •  85
  • Drew Olson  · 技术社区  · 17 年前

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

    请不要说“使用emacs”,因为我已经对vim进行了大量的开发,作为一名编辑,我真的很享受它。

    11 回复  |  直到 17 年前
        1
  •  51
  •   Mikael Jansson    17 年前

    Limp的目标是成为VIM的一个功能齐全的通用Lisp IDE。它默认为sbcl,但可以通过在文件/usr/local/limp/latest/bin/lisp.sh中替换您最喜欢的lisp的“sbcl”来更改以支持大多数其他实现。

    当最近讨论lisp时,通常假定它是通用lisp,即由ansi x3j13标准化的语言(参见 the HyperSpec Practical Common Lisp 对于一本好的教科书),使用GNU clisp、sbcl、cmucl、allegrocl等实现。

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

    the Limp repository 您将发现SlimVim项目的一些以前的工作,即ECL(Embeddedable Common Lisp)接口,与较新版本(7.1)合并;Simon还提供了7.2的补丁,但尚未合并。ECL接口记录在 if_ecl.txt .

    短期工作是要做的说,与7.2合并,并提交一个补丁给Vim_Dev,让它合并到官方的Vim树中。

    这就导致了我们的长期计划:在VIM中直接使用Lisp将使我们能够方便地开始在一个时髦的前端(在Lisp中运行的slime部分,slime.el是在编辑器中运行的部分-前端)上工作。

    在两者之间的某个地方,很可能所有的limp都将使用ecl接口在公共的lisp中重写,从而使limp更容易维护(vimscript不是我最喜欢的),并且用户更容易自定义。

    这个 official Limp site 有时会下降,但正如所指出的, download at Vim.org 应该一直工作,支持小组 limp-devel limp-user 由谷歌集团托管。如果你觉得你需要回答一个问题,或者甚至可能想参与到开发中,请毫不犹豫地加入进来。大多数讨论都在limp devel列表上进行。如果你喜欢IRC,我会在irc.freenode.net上以“tic”的形式出现。

    祝你好运!

        2
  •  28
  •   osdf    16 年前

    你可以给 slimv 休息一下。

        3
  •  19
  •   Community Mohan Dere    9 年前

    这是一个很酷的图表 Xach 这概括了目前的情况。

    diagram explaining that there are nearly no VIM users that are also Lisp programmers and can also hack it to make it a good Lisp IDE... lousy alt text :)

        4
  •  8
  •   puffpio    17 年前

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

        5
  •  7
  •   Ben Hoffstein    17 年前
        6
  •  5
  •   graywh    17 年前

    设置LISP

    Vim有一个模式来帮助您按照Lisp标准缩进代码。

    另外,我修改了lispwords来更改vim缩进代码的方式。

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

        7
  •  5
  •   Leslie P. Polzer    17 年前
    • vim附加组件:彩虹圆括号,lisp语法
    • sbcl附加组件:rlwrap、sb acrepl
    • 工作流:带有多个终端窗口的ION3(或某些其他平铺的WM)。

      • 在vim中编辑lisp
      • 切换到lisp窗口(当然使用键盘)
      • 使用C-R调用行以重新加载有问题的ASDF系统,以便您的更改变为活动的。
      • 对小片段/更改使用X窗口复制/粘贴。
      • 大量使用描述、跟踪和调整。
      • 重复。
        8
  •  3
  •   Pablo Fernandez    17 年前

    你可以给Emacs和Vim仿真一次尝试,不是完美的,但它可能有点熟悉。我认为,如果您使用slime或drscheme这样的工具进行迭代开发,Lisp会发光,那么其他所有的编辑器都会觉得这是错误的。

        9
  •  2
  •   Kirk Strauser    17 年前

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

    使用Emacs。

    严重的 SLIME Emacs的设置非常重要 这个 Lisp的标准开发平台,原因很好。

        10
  •  2
  •   Nowhere man    17 年前

    似乎有人试图将Lisp集成到VIM中,但没有人真正做到真正有用的程度。不过,我认为ECL的整合已经完成,但并没有向上游承诺。

    你应该找到所有相关的链接 Cliki's page about Vim .

        11
  •  2
  •   Dave Yarwood    8 年前

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

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