在我的文件中,.vimrc
我已经set foldmethod=syntax
启用了方法等的折叠。但是,我不喜欢每次打开文件时都会折叠整个文件的默认设置。有没有办法启用foldmethod
,但是当我打开文件时它们展开了?
8 回答
你可以把它放在你的.vimrc
:
au BufRead * normal zR
它声明了一个自动命令(au
),在读取缓冲区时触发(BufRead
),匹配所有文件(*
)并在正常模式下执行zR
(打开所有折叠)命令。
set foldlevel=99
应该打开所有折叠,无论使用何种折叠方法。foldlevel=0
全部折叠后,foldlevel=1
只有一些,...更多的数字将关闭更少的折叠。
set nofoldenable
当您打开文件时,将其添加到您的遗嘱中.vimrc
会暂时禁用折叠,但仍然可以使用zc
在.vimrc
添加一个 autocmdBufWinEnter
以自动打开所有折叠,如下所示:
autocmd BufWinEnter * silent! :%foldopen!
这告诉 vim 执行silent :%foldopen!
打开后BunWinEnter
事件(请参阅 参考资料:h BufWinEnter
)。由于 ,将在整个缓冲区上silent %foldopen!
执行,并且由于 . 将递归打开所有折叠。任何最终的错误消息都将被. (如果缓冲区实际上还没有包含任何折叠,您可能会收到错误消息)foldopen
%
!
silent
E490: No fold found
注意:如果文件具有启用将覆盖此 autocmd 的折叠的模式行,则可以使用BufRead
而不是。BufWinEnter
我的意思是BufRead
autocmds 在处理模式行之前BufWinEnter
运行并在之后运行它们。我发现后者更有用
你可以加
set foldlevelstart=99
到您的 .vimrc 文件,它将开始编辑所有折叠打开的任何新文件。
如果您想要一种方法让它在打开后立即展开,您可以使用set foldlevelstart=99
许多答案解释。
但是,如果您只想看到它们展开,您只需按下zi
它就会展开所有内容。另一个,zi
将关闭它们。
您可以将其映射到键以启用它。例如,
nmap ,f :set foldmethod=syntax<CR>
然后在正常模式下按“,f”组合键
当您放入set nofoldenable
.vimrc 文件时,您可以打开展开的文件。