diff options
-rw-r--r-- | vimrc.dot.link | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/vimrc.dot.link b/vimrc.dot.link index d7389dc..94bb058 100644 --- a/vimrc.dot.link +++ b/vimrc.dot.link @@ -435,6 +435,10 @@ set sessionoptions-=winpos " 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 @@ -462,8 +466,26 @@ endfunction " 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 |