" See https://github.com/vim-scripts/vim-auto-save
"let g:auto_save = 1
+"
+" NERDTree and session restoration workarounds
+"
+
" Ensure the window has maximized height
"
" This helps restoring the window size after reopening sessions after
" In case you want to invoke FixNERDTreeWidth explicitly
command! -bang FixNERDTreeWidth :call FixNERDTreeWidth()
+" Fix NERDTree width on all tabs
+function FixAllNERDTreeWidths()
+ " Save the last active window
+ let l:current_win = win_getid()
+
+ tabdo :call FixNERDTreeWidth()
+
+ " Restore the active window
+ call win_gotoid(l:current_win)
+
+ " An additional, last move to the left pane
+ wincmd l
+endfunction
+
" Fix all NERDTree widths afert session load
augroup workaround
autocmd!
- autocmd workaround SessionLoadPost * tabdo call FixNERDTreeWidth()
+ " This tends to fire for every buffers
+ "autocmd workaround SessionLoadPost * call FixAllNERDTreeWidths()
+
+ " This seems to fire only once
+ autocmd workaround VimEnter * call FixAllNERDTreeWidths()
augroup END