对 Vim 折叠的困惑-如何禁用?

  1. 当我打开文件时,它看起来像这样: enter image description here 甚至是这个 enter image description here
  2. 当我打开所有的折叠,当我导航到另一个缓冲区并返回时,它们再次关闭。
  3. 为了能够使用它,我必须在每次打开缓冲区时应用 zR

我在 .vimrc中设置了这些:

set foldlevelstart=99
set foldlevel=99

请指出我如何禁用折叠,或至少使导航到另一个缓冲区不关闭打开的。

49821 次浏览

set nofoldenable添加到 ~/. vimrc 以禁用折叠。

你不是一个人。

set nofoldenable    " disable folding

这里有一篇文章简明扼要地总结了为什么折叠很酷。其中一个原因是,折叠使得导航非常大的文件变得轻而易举。

如果您希望启用折叠,并且总是以打开所有折叠开始,vim wiki 告诉我们。您感兴趣的方法可能是 autocommand 方法。

" Tweak the event and filetypes matched to your liking.
" Note, perl automatically sets foldmethod in the syntax file
autocmd Syntax c,cpp,vim,xml,html,xhtml setlocal foldmethod=syntax
autocmd Syntax c,cpp,vim,xml,html,xhtml,perl normal zR

我还建议您为所使用的语言搜索自定义折叠方法。只需在谷歌上搜索“ vim < insert language here >  折叠”,您就可以看到很多選項。尝试不同的选项,直到你找到你喜欢的折叠方法。

只要再加一个就可以完成讨论了。

启用代码折叠:

简称 :set fen

禁用代码折叠:

简称 :set nofen

一旦您启用了代码折叠,您将可以根据 :set fdm=xxxx的设置(其中典型值为 expr,syntax,manual etc.)随意使用所有类似于 zf,zo etc的命令

禁用(并启用)动态折叠的最简单方法是 zi

zi是切换 'foldenable'的普通模式命令,就像 :set foldenable!一样。

助记符: “折叠 nvert”参见 :h zi

对不起,如果我在回答相关的问题,但是我发现在显示两个文件的同时关闭折叠是很有用的,比如:

vim "+set nofen" -O file1 file2

Vim 使得禁用折叠变得异常困难,特别是在使用 vimdiff 时。
上面发布的解决方案对我来说都不管用,但是这个解决了(添加到 ~/. vimrc) :

au WinEnter * set nofen
au WinLeave * set nofen

我设置 foldlevel=20foldlevelstart=20,然后使用 foldmethod=syntax。 这有助于我正确折叠 Vim。

set nofoldenable禁用折叠,但有时我需要它

Vim Wikia

我已经将这一行添加到我的 .vimrc文件,因为我有同样的问题:

autocmd FileType * exe "normal zR"

每次自动打开文件时都会执行此命令。这样你就不会看到 bug,折叠功能也不会丢失)