我通过我的.vimrc工作自动回复:
set autoread
au CursorHold,FocusGained,BufEnter * checktime
当vim由于它已经改变而重新加载缓冲区时,它都会滚动缓冲区并将当前光标位置更改为文件中看似随机的点,尽管它偶尔会停留在同一个位置。我已经尝试过它,但没有明显的模式。
有没有办法防止这种情况,或者在重新加载时保存和恢复光标位置?
答案 0 :(得分:4)
您可以尝试保存视图,然后将其恢复:
function! Checktime() abort
let l:winview = winsaveview()
checktime
call winrestview(l:winview)
endfunction
augroup Autoread
autocmd!
autocmd CursorHold,FocusGained,BufEnter * call Checktime()
augroup END
(未测试的)
答案 1 :(得分:1)
参考this回答:为防止光标离开当前位置,您可以调用feedkeys [" lh"](它将光标向右移动并向后移动,在查看文件时,这通常不会造成伤害)
:set autoread | au CursorHold * checktime | call feedkeys("lh")
分别
:set autoread | au CursorHold,FocusGained,BufEnter * checktime | call feedkeys("lh")
(它适用于我的环境)