【发布时间】:2022-07-22 16:45:07
【问题描述】:
我正在使用 vim 和 foldmethod=syntax;当我在代码中的某处键入方括号时,它会立即打开所有后续折叠。我明白为什么会发生这种情况:左括号改变了其他括号的对应关系,所有折叠同时改变。我能以某种方式防止这种情况吗?我不知道,可能是所有折叠打开之前的延迟?
编辑:
Vim 版本(vim --version 的输出):
VIM - Vi IMproved 8.1(2018 年 5 月 18 日,2022 年 2 月 1 日 09:16:32 编译)
包含的补丁:1-2269、3612、3625、3669、3741
操作系统:Ubuntu 20.04
【问题讨论】:
-
set foldclose=all有帮助吗? -
foldclose=all 确实解决了这个问题,但代价是自动关闭所有地方的所有东西,这也不是我想要的(比如当我输入一个函数时,我想看到整个body 可以轻松导航到我需要编辑的点,或者有时同时打开两个函数定义)
-
嗯。也许使用在光标后自动插入右括号的插件可能会有所帮助?
-
我对此也很好奇,但我使用 fdm=marker(即“{{{”和“}}}”)。我目前的问题是我首先输入右括号
}。有时折叠打开;然后,当我键入左括号{时,打开的折叠都再次关闭。一定有更好的办法。 -
@m_mlvx 好技巧,我至少更改了 for 循环宏,使其不再打开折叠
标签: vim