tags:

views:

268

answers:

3

I added the following code to my .vimrc:

" save and restore folds when a file is closed and re-opened
autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview 

HTML and CSS documents save and restore their folds but code folding is not being saved in my .vimrc

Any suggestions?

EDIT:

The following code solves the problem:

au BufWinLeave ?* mkview
au BufWinEnter ?* silent loadview

but if I write it, the MRU files disappear from my list (and I have to open MRU twice in order to see my list of recent files why?)

A: 

The view details get saved in view file in the vimfiles\view directory. A separate view file is created for every file you edit.

Jay
Are the autocommands working as expected, otherwise? I have my `mkview` set on `BufWrite` instead of `BufWinLeave`, and my `loadview` on `BufNewFile,BufRead` instead of `BufWinEnter`. Not sure if one or the other way is "correct."
Jay
...also, given that a view file is created for every file you modify, you might want to consider narrowing the extensions for which you're saving views. Typically, you don't gain much by saving the view for a file with a recognized syntax for automatic folding.
Jay
A: 

i had a similar problem. maybe you have to create the directory which holds the data.

mkdir -p ~/.vim/view
chmod 0750 ~/.vim ~/.vim/view
fin
+1  A: 

The problem is that your original autocmd lines are set to match the pattern *.*, i.e. any filename which contains some characters, followed by a dot, followed by some more characters.

So the file test.html or anothertest.css will be matched, and your command will run, but .vimrc, which has nothing prior to the dot, will not be matched.

The solution is to set up an autocmd which will match .vimrc. Your guess of ?* does match this (because it's looking for any character, followed by any number of other characters), but you say it somehow affects MRUs. I don't know what plugin you're using for your MRUs, but I'm guessing it's one which opens the MRU list in a temporary window with a name that matches the ?* pattern, and the subsequent loading of the view is somehow messing with your MRUs.

Therefore, the fix is to use something a bit more specific to match .vimrc:

autocmd BufWinLeave .vimrc mkview
autocmd BufWinEnter .vimrc silent loadview 

It's possible that this will work, too, and is more general:

autocmd BufWinLeave .* mkview
autocmd BufWinEnter .* silent loadview 
Rich