在我的.vimrc中,我使用了set foldmethod=syntax来启用方法的折叠等功能。但是,我不喜欢每次打开文件时,整个文件都被折叠的默认设置。有没有办法启用foldmethod,但当我打开文件时,文件是展开的?
.vimrc
set foldmethod=syntax
foldmethod
dphi5xsq1#
set foldlevel=99
应打开所有折叠,而不管折叠方法如何。foldlevel=0全部折叠,foldlevel=1仅部分折叠,...数字越大,关闭的折叠越少。
foldlevel=0
foldlevel=1
dddzy1tm2#
你可以把这个放在你的.vimrc里:au BufRead * normal zR个它声明一个自动命令(au),在读取缓冲区(BufRead)时触发,匹配所有文件(*),并在正常模式下执行zR(打开所有折叠)命令。
au BufRead * normal zR
au
BufRead
*
zR
3lxsmp7m3#
set nofoldenable
将其添加到.vimrc将在打开文件时暂时禁用折叠,但折叠仍然可以使用zc恢复
zc
h7appiyu4#
在.vimrc中,为BufWinEnter添加autocmd以自动打开所有折叠,如下所示:
BufWinEnter
autocmd BufWinEnter * silent! :%foldopen!
它告诉Vim在打开BunWinEnter事件后执行silent :%foldopen!。(参见:h BufWinEnter)。由于%,silent %foldopen!将在整个缓冲区上执行foldopen,并且由于!,将递归打开所有折叠。任何最终的错误消息都将被silent抑制。(如果缓冲区实际上尚未包含任何折叠,则可能会收到类似E490: No fold found的错误消息)注意:您可以使用BufRead而不是BufWinEnter,但是如果文件中有一个启用折叠的模型行,则会覆盖此autocmd。我的意思是,BufRead autocmd在处理模型行之前运行,而BufWinEnter将在处理模型行之后运行。我发现后者更有用
BunWinEnter
silent :%foldopen!
:h BufWinEnter
%
silent %foldopen!
foldopen
!
silent
E490: No fold found
nle07wnf5#
您可以添加
set foldlevelstart=99
到您的.vimrc文件,它将开始编辑任何新文件与所有文件夹打开。
izkcnapc6#
如果你想让它一打开就展开显示,你可以使用set foldlevelstart=99作为很多答案的解释。但是,如果你只是想看到它们展开,你可以只按zi,它就会展开一切。另一个,zi会把它们关回去。
zi
qvtsj1bj7#
您可以将其Map到键以启用它。例如,
nmap ,f :set foldmethod=syntax<CR>
然后在正常模式下按“,f”组合键
v1uwarro8#
当你把set nofoldenable放入你的.vimrc文件时,你可以打开展开的文件。
ubby3x7f9#
autocmd BufReadPost * silent! :%foldopen!这对我来说效果最好。在缓冲区打开后,所有的折叠都打开了。这将它们打开到正确的水平。set foldenable方法并不好,因为如果我选择关闭一个折叠级别,它会再次启用折叠,并将每个东西折叠到0级别,而不是只在我激活的一个上下降一个级别。
autocmd BufReadPost * silent! :%foldopen!
set foldenable
9条答案
按热度按时间dphi5xsq1#
应打开所有折叠,而不管折叠方法如何。
foldlevel=0
全部折叠,foldlevel=1
仅部分折叠,...数字越大,关闭的折叠越少。dddzy1tm2#
你可以把这个放在你的
.vimrc
里:au BufRead * normal zR
个它声明一个自动命令(
au
),在读取缓冲区(BufRead
)时触发,匹配所有文件(*
),并在正常模式下执行zR
(打开所有折叠)命令。3lxsmp7m3#
将其添加到
.vimrc
将在打开文件时暂时禁用折叠,但折叠仍然可以使用zc
恢复h7appiyu4#
在
.vimrc
中,为BufWinEnter
添加autocmd以自动打开所有折叠,如下所示:它告诉Vim在打开
BunWinEnter
事件后执行silent :%foldopen!
。(参见:h BufWinEnter
)。由于%
,silent %foldopen!
将在整个缓冲区上执行foldopen
,并且由于!
,将递归打开所有折叠。任何最终的错误消息都将被silent
抑制。(如果缓冲区实际上尚未包含任何折叠,则可能会收到类似E490: No fold found
的错误消息)注意:您可以使用
BufRead
而不是BufWinEnter
,但是如果文件中有一个启用折叠的模型行,则会覆盖此autocmd。我的意思是,BufRead
autocmd在处理模型行之前运行,而BufWinEnter
将在处理模型行之后运行。我发现后者更有用nle07wnf5#
您可以添加
到您的.vimrc文件,它将开始编辑任何新文件与所有文件夹打开。
izkcnapc6#
如果你想让它一打开就展开显示,你可以使用
set foldlevelstart=99
作为很多答案的解释。但是,如果你只是想看到它们展开,你可以只按
zi
,它就会展开一切。另一个,zi
会把它们关回去。qvtsj1bj7#
您可以将其Map到键以启用它。例如,
然后在正常模式下按“,f”组合键
v1uwarro8#
当你把
set nofoldenable
放入你的.vimrc文件时,你可以打开展开的文件。ubby3x7f9#
autocmd BufReadPost * silent! :%foldopen!
这对我来说效果最好。在缓冲区打开后,所有的折叠都打开了。这将它们打开到正确的水平。
set foldenable
方法并不好,因为如果我选择关闭一个折叠级别,它会再次启用折叠,并将每个东西折叠到0级别,而不是只在我激活的一个上下降一个级别。