В 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
флага.