问题
先说问题,vim每次修改配置应用后,再次打开其他文件,发现配置不生效,比如tabsize等。找了很久发现是vim中view文件夹的缘故。
解决
很久以前通过各种配置做了个vim的配置文件,其中包括以下这段:
set foldenable
set foldmethod=manual
" loadview and mkview when buffer enter and leave
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview
这段配置设置vim中折叠,并且关闭文件时保存相关信息,再次加载时加载保存的信息。其中mkview会在.vim/view文件夹中生成一个对应文件,这个文件保存了包括折叠情况的信息用于下载加载。这个在看源代码等场景下很实用。
但是如果修改vim配置文件~/.vimrc后,发现没有生效,当然这个没有生效有很多原因,本文只描述view相关的场景。这是因为每次加载完vim配置文件后,还会加载其他比如plugin的配置等,而我们的view文件也算是加载配置链中的最后一个,可以使用:scriptnames命令查看,会发现我们的view文件处于最后一位。
这就解释了为什么每次修改相关配置后不生效的问题了,因为view文件会覆盖配置文件。如果没有特别需要,可以不使用mkview,如果确实需要,可以在文件中自己加载下vim的配置文件。