1

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

1 ответ1

2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .