当给出无与伦比的开括号/括号时,vim折叠打开

时间:2011-01-07 22:32:13

标签: vim folding

我经常遇到这样的情况:我有很多折叠线,而且我正在写这些代码,在这些折叠之上。一旦我输入'{',下面的所有折叠打开。即使vim这样做是合法的,但再次关闭所有折叠也是令人恼火的。有没有解决这种情况的方法?

1 个答案:

答案 0 :(得分:19)

我遇到了同样的问题,可以使用this vimtip解决问题。

提示说明的摘录:

  

如果您使用任何种类的自动折叠方法,无论是标记,语法还是表达式折叠,插入开始折叠的文本都会自动打开插入点下方的所有折叠。这可能非常烦人。为了解决这个问题,您可以在进入插入模式时暂时切换到手动折叠方法,并在离开时切换回来。

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

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