代码之家  ›  专栏  ›  技术社区  ›  justinhj

如何在Clojure repl中自动展开或自动完成函数和变量

  •  11
  • justinhj  · 技术社区  · 15 年前

    有没有一种方法可以像在Common Lisp中那样在Clojure repl中扩展当前命令?

    例如,假设我输入了:

    Math/
    

    我希望tab键扩展到该命名空间中所有可用的变量和函数。

    我正在使用Clojure作为劣等lisp想知道如何从普通香草repl在Clojure,并通过斯旺克粘液。

    3 回复  |  直到 15 年前
        1
  •  19
  •   sw1nn    12 年前

    又一次投票支持在Emacs领导下的clojure模式和slime。特别是,如果你 auto-complete ,然后您可以使用我的 ac-slime 在下拉列表中获取上下文感知选项卡完成的包。这是一个 screencast showing it in action .

    而且,根据technomancy对嬉皮士扩展的评论, here's how to tie slime completion into hippie-expand .

    更新:截至2012年, nrepl , nrepl.el ac-nrepl 正在取代煤泥和交流煤泥;同样的功能,更小和更清洁的代码库。

    更新2:截至2013年10月 nrepl.el 已重命名为 cider 它和 ac-nrepl 已经转移到 clojure-emacs github上的组织。 nrepl公司 保留为服务器组件

        2
  •  3
  •   ffriend    15 年前

    你试过了吗 克隆模式 对于Emacs?它具有自动完成功能(建议显示在新窗口中,如果只有一个可能的选项,则用于扩展名称)、突出显示和许多其他不错的功能(不比CL多,但也不比CL少)。

    可通过 ELPA . 之后 installing ELPA 类型 M-x package-list-packages ,将光标放在所需的包附近并按 i (已安装的软件包为红色)。你需要包裹 clojure-mode , slime , slime-repl swank-clojure . 当你用完了 -标记,按 x 以完成安装。最后,按 M-x slime -Emacs会告诉您,Clojure没有安装,建议下载并使用最新版本。同意吧。

    你也可以 integrate Emacs与 Leiningen .

        3
  •  2
  •   user61051user61051    15 年前

    克洛朱尔的香草repl相当残废,它甚至没有历史。除了最基本的任务,什么都不要做。我不认为你能在劣质的lisp中得到这个,但是在slime repl中你可以使用TAB来完成这样的事情。在clojure模式中,slime激活的缓冲区是M-TAB,或者可以将其绑定到嬉皮士扩展函数中。