Перемещение курсора в Vim после сохранения

Я начал испытывать странное поведение в Vim - при сохранении файла (:w) курсор переместится в определенное место в файле. Расположение является постоянным и отличается для разных файлов, то есть это может быть начало функции и т. Д., Но если я переместу строку вверх или вниз, местоположение после сохранения останется.

Мой.vimrc довольно длинный, и пока я пробовал только :noautocmd команда.

Как я могу это исправить или отладить?

2 ответа

Решение

Из документов по синтетике:

При значении 0 курсор не будет прыгать автоматически. > let g:syntastic_auto_jump = 0 <При значении 1 курсор всегда будет переходить к первой обнаруженной проблеме независимо от ее типа. > let g:syntastic_auto_jump = 1 <При значении 2 курсор перейдет к первой обнаруженной проблеме, но только если эта ошибка является ошибкой. > let g:syntastic_auto_jump = 2 <При значении 3 курсор перейдет к первой обнаруженной ошибке, если таковая имеется. Если все обнаруженные проблемы являются предупреждениями, курсор не будет прыгать. > let g:syntastic_auto_jump = 3

Итак, добавление

let g:syntastic_auto_jump = 0

решил проблему. Непонятно, почему проблема появилась внезапно, но вот решение для тех, кто в ней нуждается.

У меня была такая же проблема, а не из-за syntastic_auto_jump установка, но из-за команды, которую я поместил для конечного пробела:

autocmd FileType * autocmd BufWritePre <buffer> :%s/\s\+$//e

Это перемещало курсор на последнюю строку, которую заменял пробел. По сути, любая команда, вносящая изменения в документ и изменяющая курсор без его восстановления, может вызывать аналогичное поведение.

PS: конечный пробел можно исправить либо с помощью функции, которая восстанавливает курсор, как показано ниже (взято отсюда)

function! <SID>StripTrailingWhitespaces()
    let l = line(".")
    let c = col(".")
    %s/\s\+$//e
    call cursor(l, c)
endfun

autocmd BufWritePre * :call <SID>StripTrailingWhitespaces()

или с помощью плагина, который заменяет конечные пробелы и восстанавливает курсор для вас

Другие вопросы по тегам