如何在SpaceMac中折叠Clojure DocString

如何在SpaceMac中折叠Clojure DocString,clojure,spacemacs,code-folding,Clojure,Spacemacs,Code Folding,我正在用Clojure编写一个程序。我希望能够折叠docstring。我已经尝试过选择docstring并按下za,但是,最终会折叠整个函数体 具体地说,我希望能够扭转这一局面: (defn flip-and-vectorize "Returns a vector with the arguments flipped so that `(flip-and-vectorize 1 2)` returns the following vector `[2 1]`" [

我正在用Clojure编写一个程序。我希望能够折叠docstring。我已经尝试过选择docstring并按下
za
,但是,最终会折叠整个函数体

具体地说,我希望能够扭转这一局面:

(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”是什么,而只需要折叠选定的行。

有两个选项:

  • 这两个包都支持折叠区域。与中一样,它可以折叠所选的任何内容。区别在于后者有更多的特点。尤其是即使关闭和重新打开缓冲区,也能记住折叠

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

    dotspacemacs-additional-packages '(fold-this)
    
    折叠这是更直接的设置,因为它有较少的功能

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


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

    我想你的意思是做与缩小区域相反的事情。这些建议确实实现了目标,谢谢!然而,坍塌的区域并不像我希望的那样整洁。