今天,我学习了如何在Vim中折叠/展开。非常方便。

出乎意料的是,当我退出文件并重新输入文件时,我创建的折痕消失了(展开)。

在我们公司的大型项目中,有很多粘性(旧式)代码块有些过时但必不可少。

我真的需要几乎永久地折叠它们。

是否有一种简单的方法告诉Vim保存文件的折叠首选项?

评论

我不知道它是否可以解决您的问题,但是:mkview和:loadview命令可能会有所帮助。您可以尝试在vimrc au BufWinLeave * .c mkview和au BufWinEnter * .c静默loadview中添加这两行,并使它们适应您的特定需求。这些自动命令将在您为第一个缓冲区保留缓冲区时,以及为第二个缓冲区输入缓冲区时(仅针对C文件)自动执行。我已经从:mkview命令(:help:mkview)的帮助下复制了它们。

根据帮助,它应该在使用手动折叠时还原折叠,并且选项“ viewoptions”包含折叠。如果要对其他文件类型执行自动命令,则可以更改自动命令。例如,如果要添加python文件,则可以将* .c更改为* .c,*。py。

对不起,我说每当您输入/离开缓冲区都会执行自动命令时,我错了。第一个将在窗口中显示缓冲区之后执行,第二个将在从窗口中删除缓冲区之前执行。

#1 楼

我只是针对一个文件执行此操作,我引用了很多文件。NOTES.otl我在.vimrc中执行以下操作:使用:mkview:loadview命令折叠。

#2 楼

更为通用的方法(不仅适用于QuickNotes,而且适用于所有文件)如下:
" Save and restore manual folds when we exit a file
augroup SaveManualFolds
    autocmd!
    au BufWinLeave, BufLeave ?* silent! mkview
    au BufWinEnter           ?* silent! loadview
augroup END

有关更多信息,请参见view-sessions,其中包括mkviewloadview命令。