在我的 .vimrc中,我把 set foldmethod=syntax放到了方法的折叠中。然而,我不喜欢默认的,每次我打开一个文件,整个事情是折叠。有没有一种方法可以启用 foldmethod,当我打开它们的时候,文件已经展开了?
.vimrc
set foldmethod=syntax
foldmethod
您可以将其映射到键以启用它。 比如说,
nmap ,f :set foldmethod=syntax<CR>
然后在正常模式下按“ ,f”组合键
set foldlevel=99
应打开所有折叠,无论使用的方法进行折叠。随着 foldlevel=0全部折叠,foldlevel=1只有一些,... ... 较高的数字将关闭较少的折叠。
foldlevel=0
foldlevel=1
你可以把这个放进你的 .vimrc: au BufRead * normal zR
au BufRead * normal zR
它声明一个自动命令(au) ,当读取缓冲区(BufRead)时触发,匹配所有文件(*) ,并在正常模式下执行 zR(打开所有折叠)命令。
au
BufRead
*
zR
在 .vimrc中,为 BufWinEnter添加一个 autocmd 来自动打开所有折叠,如下所示:
BufWinEnter
autocmd BufWinEnter * silent! :%foldopen!
它告诉 vim 在打开 BunWinEnter事件后执行 silent :%foldopen!(参见 :h BufWinEnter)。由于 %,silent %foldopen!将在整个缓冲区上执行 BunWinEnter0,并且由于 !,将递归地打开所有折叠。任何最终的错误消息都将被 BunWinEnter1抑制。(如果缓冲区实际上还没有包含任何折叠,您可能会得到像 E490: No fold found这样的错误消息)
BunWinEnter
silent :%foldopen!
:h BufWinEnter
%
silent %foldopen!
!
E490: No fold found
注意: 您可以使用 BufRead而不是 BufWinEnter,但是如果文件具有一个允许折叠的 model,那么它将覆盖这个 autocmd。我的意思是 BufRead autocmds 运行之前的模式是处理和 BufWinEnter将运行他们之后。我觉得后者更有用
你可以加
set foldlevelstart=99
到你的.vimrc 文件,它将开始编辑所有打开折叠的新文件。
如果你想让它一打开就展开,你可以使用 set foldlevelstart=99作为许多答案的解释。
但是,如果你只是想看到它们展开,你只需按下 zi,它就会展开一切。另外,zi会关闭它们。
zi
set nofoldenable
将此添加到您的 .vimrc将暂时禁用折叠时,您打开的文件,但折叠仍然可以恢复与 zc
zc
当您将 set nofoldenable放入.vimrc 文件时,您可以打开未折叠的文件。
autocmd BufReadPost * silent! :%foldopen!
这对我来说效果最好。缓冲区打开后,所有的折叠都打开了。这将把它们打开到正确的级别。
set foldenable的方法不好,因为如果我选择关闭一个折叠水平,它再次启用折叠,并折叠每件事物到0水平,而不是只下降一个水平的一个我激活。
set foldenable