From 0a1fe34d365e944f68ca26ef9ddb9ae4c9e70f0c Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 28 Jul 2024 01:52:07 -0300 Subject: Fix: NERDTree and session restoration workarounds: use VimEnter instead of SessionLoadPost --- vimrc.dot.link | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3