" nedtree_workaroungs.vim - NERDTree and session restoration workarounds " " Author: Silvio Rhatto " " Ensure the window has maximized height " " This helps restoring the window size after reopening sessions after " switching monitors (like from laptop screen to external HDMI monitor). " " https://superuser.com/questions/140419/how-to-start-gvim-maximized " https://vim.fandom.com/wiki/Maximize_or_set_initial_window_size set lines=999 " Fix NERDTree width " " Useful after restoring sessions between screen size changes (such " as when you share sessions between different computers). function FixNERDTreeWidth() " Make sure NERDTree is focuses execute ":NERDTreeFocus" " Set a fixed width execute ":vertical resize 30" " Move to the left pane wincmd l 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! " 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