请教一个问题,spacemacs 里面 代码折叠与展开的快捷键是什么?

请教一个问题,spacemacs 里面 代码折叠与展开的快捷键是什么?

是需要自定义吗? 还是用 M-x 查找?

1 个赞

z a:切换当前级别的展开

z r :展开所有

z m:关闭所有

2 个赞

在 vim editing style 的 normal 状态下,按 z a 就可以折叠和展开了。

多谢二位,我已经把 vim给遗忘了,哈哈,有点死脑经

这个功能支持那些文件?是开箱即用吗? 我试了 html 和 python 都没有效果,不管是 ‘z a’,‘z c’, ‘z m’ 都不行。

SPC c l

SPC c 就看到了

我是 C++ 可以了,我也试了 python 也是可以的, 这应该是通用的啊

python的话evil自带的za,zc是可以的,html我的设置是

    (add-hook 'web-mode-hook
              (lambda ()
               (define-key evil-normal-state-local-map "za" 'web-mode-fold-or-unfold)
                ))

难道是major-mode不对?

major-mode 是 web-mode 啊,不对吗

一些 major mode 以及 minor mode 并不支持 z a/c/m/r/o 这种 vim 方式的折叠,不过 emacs 中的 narrow 和 widen 提供了一种近似折叠的功能 是每个 buffer 都能用的,Spacemacs 默认的 key binding 是 SPC n p/f/rSPC n w, 不妨一试。

web-mode 中 fold 可以用 SPC m z 来切换折叠。

我除了折叠文档式的大段注释,从来不用折叠,“不想看的都在屏幕外面啊,折叠他们干嘛”。
现在刚用spacemacs不久,narrow不自觉越用越多了,感觉蛮舒服的,设定好关注的区域,怎么跑都不会出去。
然而有个小问题,buffer的内容似乎只包括narrow之后的,如果一个变量在narrow后的区域外面定义,又从来没用过(narrow后区域里没有),补全就出不来。