如何在打开文件时设置默认展开?

在我的.vimrc我已经set foldmethod=syntax来启用折叠的方法等。但是,我不喜欢默认情况下,每次我打开一个文件,整个事情是折叠的。 有没有一种方法来启用foldmethod ,但打开文件时却打开了文件?

 set foldlevel=99 

应该打开所有的折叠,无论用于折叠的方法。 foldlevel=0全部折叠, foldlevel=1只有一些,…更高的数字将closures更less的折叠。

你可以把它放在你的.vimrcau BufRead * normal zR

它声明一个自动命令( au ),在读取缓冲区( BufRead )时触发,匹配所有文件( * )并在正常模式下执行zR (打开所有折叠)命令。

 set nofoldenable 

把这个添加到你的.vimrc会暂时禁止折叠,但是折叠仍然可以用zc来恢复

.vimrcBufWinEnter添加一个autocmd来自动打开所有的折叠,如下所示:

 autocmd BufWinEnter * silent! :%foldopen! 

这告诉vim执行silent :%foldopen! 打开BunWinEnter事件后(参见:h BufWinEnter )。 silent %foldopen! 将在整个缓冲区执行foldopen感谢%并会打开所有折叠recursion,因为! 。 任何最终的错误信息将被silent压制。 (你可能会得到如E490: No fold found错误信息E490: No fold found如果缓冲区实际上不包含任何折叠,则不会E490: No fold found折叠)

注意:您可以使用BufRead而不是BufWinEnter但是如果文件有一个模式行,它将启用将覆盖此autocmd的折叠。 我的意思是BufRead在处理模式行之前运行,而BufWinEnter将在之后运行它们。 我发现后者更有用

你可以加

 set foldlevelstart=99 

到您的.vimrc文件,它将开始编辑所有折叠打开的新文件。

如果你想要一种方式来打开它展示展开,你可以使用set foldlevelstart=99作为很多解释的答案。

但是,如果你只是想看到他们展开,你可以按zi ,它会展现一切。 另外, zi会把他们closures。

您可以将其映射到键以启用它。 例如,

 nmap ,f :set foldmethod=syntax<CR> 

然后在正常模式下按下“,f”组合键