Vim авточитание без изменения позиции курсора - PullRequest
0 голосов
/ 22 мая 2018

У меня автоматическое чтение, работающее через мой .vimrc:

set autoread
au CursorHold,FocusGained,BufEnter * checktime

Когда vim перезагружает буфер из-за его изменения, он одновременно прокручивает буфер и меняет текущую позицию курсора на кажущуюся случайной точку вфайл, хотя иногда он остается на том же месте.Я экспериментировал с этим, но картина не очевидна.

Есть ли способ предотвратить это или сохранить и восстановить положение курсора при перезагрузке?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Ссылаясь на этот ответ: чтобы предотвратить перемещение курсора от его текущей позиции, вы можете вызвать feedkeys ["lh"] (он перемещает курсор вправо и обратно влево, чего обычно нетне навреди при просмотре файла)

:set autoread | au CursorHold * checktime | call feedkeys("lh")

соответственно

:set autoread | au CursorHold,FocusGained,BufEnter * checktime | call feedkeys("lh")

(работает в моем окружении)

0 голосов
/ 23 мая 2018

Вы можете попытаться сохранить представление и затем восстановить его:

function! Checktime() abort
    let l:winview = winsaveview()
    checktime
    call winrestview(l:winview)
endfunction

augroup Autoread
    autocmd!
    autocmd CursorHold,FocusGained,BufEnter * call Checktime()
augroup END

(не проверено)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...