当给出不匹配的大括号/圆括号时,vim折叠打开

当给出不匹配的大括号/圆括号时,vim折叠打开,vim,folding,Vim,Folding,我经常遇到这样的情况,我有很多行折叠起来,我正在写,比如说一段新的代码,在这些折叠上面。我一键入“{”,下面的所有折叠就打开了。尽管vim这样做是合法的,但再次关闭所有折叠会让人恼火。有什么办法可以解决这种情况吗?我也遇到了同样的问题,可以使用 提示说明的小摘录: 如果您正在使用任何类型的自动折叠方法,无论是标记、语法还是表达式折叠,插入开始折叠的文本将自动打开插入点下方的所有折叠。这可能非常烦人。为了避免这种情况,您可以在进入插入模式时临时切换到手动折叠方法,然后在退出时切换回手动折叠方法这是

我经常遇到这样的情况,我有很多行折叠起来,我正在写,比如说一段新的代码,在这些折叠上面。我一键入“{”,下面的所有折叠就打开了。尽管vim这样做是合法的,但再次关闭所有折叠会让人恼火。有什么办法可以解决这种情况吗?

我也遇到了同样的问题,可以使用

提示说明的小摘录:

如果您正在使用任何类型的自动折叠方法,无论是标记、语法还是表达式折叠,插入开始折叠的文本将自动打开插入点下方的所有折叠。这可能非常烦人。为了避免这种情况,您可以在进入插入模式时临时切换到手动折叠方法,然后在退出时切换回手动折叠方法这是我的梦想

诀窍是在编辑开始时将
foldmethod
设置为
手动

autocmd InsertEnter * if !exists('w:last_fdm') | let w:last_fdm=&foldmethod | setlocal foldmethod=manual | endif
编辑完成后,将
foldmethod
重置为其原始值:

autocmd InsertLeave,WinLeave * if exists('w:last_fdm') | let &l:foldmethod=w:last_fdm | unlet w:last_fdm | endif

我无法用默认的vim安装和简单的Java文件重现此问题…我也无法重现此问题。好奇的是,您是否启用了
showmatch
?此设置是否会影响行为?@r.v我想知道您的
foldmarker
中有什么内容?@krakover,@Randy Morris我相信您可以重现此行为默认的vim设置,如果您要执行以下操作:使用
vim-u NONE-c'set nocompatible fdm=marker fmr={,}'-c“call setline('.',repeat(['{','}',3])”
启动vim,然后键入
zoo{
@Randy Morris
showmatch
关闭。@ZyX我正在使用
foldmethod syntax
fmr={},}
但我认为这里没有使用它。