Команда `:cw` в Vim: как избежать автоматического перехода к первой ошибке?

Команда `:cw` в Vim: как избежать автоматического перехода к первой ошибке?

В Vim :cwкоманда показывает окно быстрого исправления, если есть какие-либо ошибки, и позволяет курсору перейти к первой распознанной ошибке в окне быстрого исправления (не в буфере, где есть ошибка). Есть ли команда, которая делает то же самое, но не переходит к первой ошибке, а остается там, где она была?

решение1

Если ваша проблема в том, что окно quickfix крадет фокус у окна, в котором вы сейчас работаете, решение довольно простое. Добавьте эти строки в ваш ~/.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флага.

Связанный контент