I am using vim to create and edit python code. I have python-mode installed which provides (amongst other things) refactoring via rope. I also have SimpylFold installed to provide code folding.
Everything's working great apart from one annoying little thing...
When I do a refactoring operation, all folds are automatically closed immediately. This is super annoying as I have the folds set to various states of open / closed as appropriate for what I'm working on at the time and this undoes that so I have to re-open the folds that I'm working on.
Does anyone know / is anyone able to work out how I can prevent this so that I do the rafactoring operation and the folds remain as they were before please?
Cheers :)
YES! I did it!
My solution was:
Install FastFold (https://github.com/Konfekt/FastFold) [1]
Install vim-stay (https://github.com/kopischke/vim-stay) [2]. I'm not sure if this plugin is 100% necessary for this solution but it seems pretty useful anyway (e.g. persists folds after save, close, and re-open).
Use the recommended settings for vim-stay, i.e. add
set viewoptions=cursor,folds,slash,unixto.vimrc.Set the optional FastFold setting
let g:fastfold_savehook = 0by adding it to.vimrc. This appears to be the crucial step that finally got it to work.Happy days! Enjoy!
UPDATE: If you change the folds that you have open / closed since you opened the file, you have to save the view (not the file) using
:mkviewfor those folds to persist after a refactoring [3].Footnotes:
[1] I use Vundle (https://github.com/VundleVim/Vundle.vim) so for me this was just a case of adding
Bundle 'Konfekt/FastFold'to my.vimrc, saving, closing, re-opening, and then running:BundleListfollowed by:BundleInstall.[2] Installation is the same as above but substitute
kopischke/vim-stayforKonfekt/FastFold.[3] I found this was easier when mapped to a key, in my case
<F9>