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

lyfkaqu1  于 2022-11-11  发布在  其他
关注(0)|答案(9)|浏览(274)

在我的.vimrc中,我使用了set foldmethod=syntax来启用方法的折叠等功能。但是,我不喜欢每次打开文件时,整个文件都被折叠的默认设置。有没有办法启用foldmethod,但当我打开文件时,文件是展开的?

dphi5xsq

dphi5xsq1#

set foldlevel=99

应打开所有折叠,而不管折叠方法如何。foldlevel=0全部折叠,foldlevel=1仅部分折叠,...数字越大,关闭的折叠越少。

dddzy1tm

dddzy1tm2#

你可以把这个放在你的.vimrc里:au BufRead * normal zR
它声明一个自动命令(au),在读取缓冲区(BufRead)时触发,匹配所有文件(*),并在正常模式下执行zR(打开所有折叠)命令。

3lxsmp7m

3lxsmp7m3#

set nofoldenable

将其添加到.vimrc将在打开文件时暂时禁用折叠,但折叠仍然可以使用zc恢复

h7appiyu

h7appiyu4#

.vimrc中,为BufWinEnter添加autocmd以自动打开所有折叠,如下所示:

autocmd BufWinEnter * silent! :%foldopen!

它告诉Vim在打开BunWinEnter事件后执行silent :%foldopen!。(参见:h BufWinEnter)。由于%silent %foldopen!将在整个缓冲区上执行foldopen,并且由于!,将递归打开所有折叠。任何最终的错误消息都将被silent抑制。(如果缓冲区实际上尚未包含任何折叠,则可能会收到类似E490: No fold found的错误消息)
注意:您可以使用BufRead而不是BufWinEnter,但是如果文件中有一个启用折叠的模型行,则会覆盖此autocmd。我的意思是,BufRead autocmd在处理模型行之前运行,而BufWinEnter将在处理模型行之后运行。我发现后者更有用

nle07wnf

nle07wnf5#

您可以添加

set foldlevelstart=99

到您的.vimrc文件,它将开始编辑任何新文件与所有文件夹打开。

izkcnapc

izkcnapc6#

如果你想让它一打开就展开显示,你可以使用set foldlevelstart=99作为很多答案的解释。
但是,如果你只是想看到它们展开,你可以只按zi,它就会展开一切。另一个,zi会把它们关回去。

qvtsj1bj

qvtsj1bj7#

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

nmap ,f :set foldmethod=syntax<CR>

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

v1uwarro

v1uwarro8#

当你把set nofoldenable放入你的.vimrc文件时,你可以打开展开的文件。

ubby3x7f

ubby3x7f9#

autocmd BufReadPost * silent! :%foldopen!
这对我来说效果最好。在缓冲区打开后,所有的折叠都打开了。这将它们打开到正确的水平。
set foldenable方法并不好,因为如果我选择关闭一个折叠级别,它会再次启用折叠,并将每个东西折叠到0级别,而不是只在我激活的一个上下降一个级别。

相关问题