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

lyu*_*uba 109 vi vim folding

  1. 当我打开文件时,它看起来像这样: 在此输入图像描述 甚至这个 在此输入图像描述
  2. 当我打开所有折叠时,当我导航到另一个缓冲区然后回来时它们会再次关闭.
  3. 为了能够使用它,我必须在zR每次打开缓冲区时应用.

我有这些设置.vimrc:

set foldlevelstart=99
set foldlevel=99
Run Code Online (Sandbox Code Playgroud)

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

zeu*_*xcg 195

你不是一个人.

set nofoldenable    " disable folding
Run Code Online (Sandbox Code Playgroud)

  • 它是[vim-markdown](https://github.com/plasticboy/vim-markdown#options).要通过vim-markdown禁用折叠,请使用`let g:vim_markdown_folding_disabled = 1` (12认同)
  • 请注意,这不会影响vimdiff.当vim创建一个diff窗口时,它似乎会覆盖`foldenable`选项.我发现的唯一解决方法是将`diffopt`的`context`子选项设置为非常大的东西.例如:`set diffopt + = context:99999` (7认同)
  • 我更喜欢下面的glts'解决方案:使用'zi'切换可折叠状态。关于vim的几个大问题之一是要记住的事情之多。像'zi'而不是'foldableable'这样的小东西都是上帝送的! (2认同)

glt*_*lts 52

在运行中禁用(和启用)折叠的最简单方法是zi.

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

助记:"折叠 nvert".见:h zi.

  • 很简单.我喜欢它. (4认同)

mea*_*gar 44

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

  • 工作,谢谢!然而,既然你们都同时回答,那么我们支持zeuxcg,因为他的声誉较低 (3认同)

cle*_*oux 16

这篇文章简要而简洁地总结了为什么折叠很酷.一线原因是折叠使得导航非常大的文件变得轻而易举.

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

" 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
Run Code Online (Sandbox Code Playgroud)

我还建议您搜索您使用的语言的自定义折叠方法.只需谷歌搜索"vim <在这里插入语言>折叠"应该提出了许多选择.使用不同的选项,直到找到您喜欢的折叠方法.


zin*_*yev 5

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

autocmd FileType * exe "normal zR"

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