当我关闭缓冲区中的第一个折叠(正常模式下为zc
)时,所有折叠都会自动关闭。有没有办法只关闭给定的折叠而不关闭其余的折叠?
我有foldmethod=syntax
。用python观察,但这可能适用于其他语言。
示例python文件
方法a()上的 zc
如您所见,所有方法:a
,b
,c
都已折叠。所需行为仅适用于折叠方法a
,如下所示:
这仅在第一次在缓冲区中关闭折叠时发生。重新打开所有折叠后,zc
只会关闭正确的折叠。
编辑:我认为这与SimpylFold
插件有关。我默认设置了nofoldenable
。当我zc
时,它看起来像SimpylFold
设置foldenable
,它会自动折叠所有方法。
答案 0 :(得分:1)
原因是与nofoldenable
和插件SimpylFold的奇怪互动。我默认设置nofoldenable
。如果您有foldenable
,除非您添加其他命令,否则默认情况下您的所有折叠都会关闭。
现在使用SimpylFold插件时,zc
首次使用时也会设置foldenable
,这将关闭所有折叠。
解决方案是在~/.vimrc
autocmd FileType python setlocal foldenable foldlevel=20
这样可以在本地折叠python文件,同时在打开缓冲区时打开折叠。然后zc
表现正常。