vim.cmd([[ " https://vim.fandom.com/wiki/Avoid_scrolling_when_switch_buffers " Save current view settings on a per-window, per-buffer basis. function! AutoSaveWinView() if !exists("w:SavedBufView") let w:SavedBufView = {} endif let w:SavedBufView[bufnr("%")] = winsaveview() endfunction " Restore current view settings. function! AutoRestoreWinView() let buf = bufnr("%") if exists("w:SavedBufView") && has_key(w:SavedBufView, buf) let v = winsaveview() let atStartOfFile = v.lnum == 1 && v.col == 0 if atStartOfFile && !&diff call winrestview(w:SavedBufView[buf]) endif unlet w:SavedBufView[buf] endif endfunction autocmd BufLeave * call AutoSaveWinView() autocmd BufEnter * call AutoRestoreWinView() ]])