如何在Spacemacs中折叠Clojure文档字符串

时间:2017-05-25 00:15:08

标签: clojure spacemacs code-folding

我正在使用Spacemacs在Clojure中编写程序。我希望能够折叠docstrings。我已经尝试选择文档字符串并按z a,但最终会折叠整个函数体。

具体来说,我希望能够解决这个问题:

(defn flip-and-vectorize
  "Returns a vector with the arguments flipped so that

   `(flip-and-vectorize 1 2)`

   returns the following vector

   `[2 1]`"
  [a b]
  [b a])

进入与此类似的东西

(defn flip-and-vectorize
  "..."
  [a b]
  [b a])

修改

即使能够折叠任意线也是可以接受的;意味着上述函数的折叠版本看起来像这样:

(defn flip-and-vectorize
  ...
  [a b]
  [b a])

这意味着崩溃逻辑不需要理解“docstring”是什么,但只会折叠选定的行。

1 个答案:

答案 0 :(得分:1)

有两种选择:

  1. https://github.com/magnars/fold-this.el
  2. https://github.com/mrkkrp/vimish-fold

这两个包装都支持折叠区域。如图所示,它可以折叠任何选定的内容。区别在于后者具有更多功能。尤其是即使关闭并重新打开缓冲区,记住折叠的能力。

要使用它们,请按照其github页面上的说明进行操作。但是,当它说要运行软件包安装时,而不是在spacemacs中,您要使用.spacemacs打开SPC f e d并将软件包添加到dotspacemacs-additional-packages中,如下所示:

dotspacemacs-additional-packages '(fold-this)

折叠-由于功能较少,因此设置起来更直接。

无论哪种情况,您都需要添加自己的键绑定。或者只是选择要折叠的区域,然后转到SPC SPC fold-this

如果使用vimish-fold,则需要选择要折叠的区域,然后调用SPC SPC vimish-fold进行折叠,然后再使用C-`来打开和关闭折叠。或致电SPC SPC vimish-fold-delete除去折页。