В Vim :cw
команда показывает окно быстрого исправления, если есть какие-либо ошибки, и позволяет курсору перейти к первой распознанной ошибке в окне быстрого исправления (не в буфере, где есть ошибка). Есть ли команда выполнить ту же работу, но не перейти к первой ошибке, а остаться там, где она была?
1 ответ
Если ваша проблема заключается в том, что окно быстрого исправления скрывает фокус от окна, в котором вы сейчас работаете, решение довольно простое. Добавьте эти строки в ваш ~/.vimrc
:
augroup quickfix
autocmd!
autocmd Syntax qf wincmd p
augroup END
Это не команда :cw[indow]
которая перемещает курсор на первую совпадающую строку в буфере, это команда, которая создала список, отображаемый в окне быстрого исправления, который делает это.
Предположим, у вас есть:
foo
foobar
foobarbaz
и вы делаете:
:vim foo %
Ваш курсор автоматически позиционируется на первой совпадающей строке без :cw
.
Если вы делаете:
:vim foo % | cw
Ваш курсор по-прежнему расположен на первой совпадающей строке, поэтому поведение не связано с :cw
.
Но если вы делаете:
:vim /foo/j % | cw
Ваш курсор остается на месте. Смотрите :help :vimgrep
.
Вы должны проверить документацию команды, которую вы используете, чтобы увидеть, имеет ли она эквивалент этого флага j
.