关于vim折叠的困惑 - 如何禁用?

时间:2011-02-16 13:27:18

标签: vim vi folding

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

    set foldlevelstart=99
    set foldlevel=99
    

    请指出如何禁用折叠,或者至少将导航导向另一个缓冲区而不是关闭已打开的折叠。

9 个答案:

答案 0 :(得分:188)

你并不孤单。

set nofoldenable    " disable folding

答案 1 :(得分:45)

即时禁用(和启用)折叠的最简单方法是zi

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

助记符:“弃 nvert”。请参阅:h zi

答案 2 :(得分:44)

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

答案 3 :(得分:15)

Here is an article简要而简洁地总结了为什么折叠很酷。一个原因是折叠使得导航非常大的文件变得轻而易举。

如果您想要启用折叠,并且只是始终打开所有折叠,则vim wiki tells how.您感兴趣的方法可能是自动命令方法。

" 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<在这里插入语言>折叠”应该提出了许多选项。使用不同的选项,直到找到您喜欢的折叠方法。

答案 4 :(得分:4)

我已将此行添加到我的.vimrc文件中,因为我遇到了同样的问题:

autocmd FileType * exe "normal zR"

每次自动打开文件时都会执行此命令。所以你不会看到错误,折叠功能也不会丢失。)

答案 5 :(得分:2)

只需再添加一个即可完成讨论。

启用代码折叠:

:set foldenable或简称:set fen

禁用代码折叠:

:set nofoldenable或简称:set nofen

启用代码折叠后,根据zf,zo etc的设置,您将拥有:set fdm=xxxx之类的所有命令,其中典型值为expr,syntax,manual etc.

答案 6 :(得分:1)

很抱歉,如果我正在回答相关问题,但我觉得有用的是显示两个文件并且折叠已关闭,如下所示:

vim "+set nofen" -O file1 file2

答案 7 :(得分:1)

Vim让禁用折叠非常困难,特别是在使用vimdiff时 以上所发布的解决方案都不适用于我,但这样做(添加到〜/ .vimrc):

au WinEnter * set nofen
au WinLeave * set nofen

答案 8 :(得分:1)

我设置foldlevel=20foldlevelstart=20并使用foldmethod=syntax。 它帮助我在vim中正确折叠。

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

vim.wikia