我有一个带有CSS的HTML文件。通常我在2个选项卡中打开文件,因此我可以轻松地在HTML和CSS之间切换,但我也想折叠大部分代码(特别是font-face声明。)不幸的是,每当我打开第二个选项卡时,每个单折已撤消。
之后我可以重新折叠一切,但是如果我打开另一个标签,它会再次被撤消。
我的.vimrc中的代码折叠设置如下:
set foldmethod=indent " fold based on indent
set nofoldenable " don't fold by default
set foldlevel=1 " only close/open one foldlevel at a time
au BufWinLeave * silent! mkview " save view when closing buffer
au BufWinEnter * silent! loadview " load view when opening buffer
答案 0 :(得分:0)
尝试在原始缓冲区中执行:mkview
,而不是移动到不同选项卡中的相同缓冲区并执行:loadview
。这应该使折叠相同,这表明BufWinLeave和BufWinEnter不是您想要的事件。 。 。 。也许这也是因为foldenable是特定于窗口的,在这种情况下,您还需要在新选项卡上的窗口中启用折叠。 。
此外,如果您只是在当前选项卡中拆分(:split
或:vsplit
)窗口,则甚至不需要使用mkview / loadview。这应该为您提供相同缓冲区的两个视图,具有相同的折叠设置。一旦拆分,每个窗口中的折叠将独立工作。 (:set winwidth=999
; :set winminwidth=1
使用垂直分割时会使当前窗口自动填充Vim屏幕的宽度。)
答案 1 :(得分:0)
首先,有必要知道制表符与缓冲不一样。在很多地方可以对此进行解释。 您需要将其放在“ .vimrc”文件中:
autocmd TabLeave * mkview
autocmd TabEnter *静默loadview