Не меняйте текущий буфер при использовании окна быстрого исправления vim - PullRequest
7 голосов
/ 10 сентября 2011

Я использую VIM при разработке проектов C ++ и настроил ярлык для компиляции следующим образом

map <F4> :w<CR> :set makeprg=make<CR> :make <CR>:cw 4<CR>

, который строит мой проект и показывает окно быстрого исправления в случае каких-либо ошибок.

Однако это всегда заставит vim открыть файл, содержащий первую ошибку в моем текущем буфере, что раздражает, когда ошибка логически вызвана не строкой, указанной компилятором, а некоторым другим фрагментом кода. в файле, который в настоящее время открыт . Могу ли я запретить VIM переключать открытый в данный момент файл при переходе к ошибке (то есть переходить к первой ошибке, только если она содержится в текущем файле, в противном случае просто открыть окно быстрого исправления). Кроме того: можно ли вообще запретить переход к первой ошибке (опять же: просто откройте окно быстрого исправления)

Ответы [ 2 ]

10 голосов
/ 10 сентября 2011

Чтобы команда :make не могла перейти к первой ошибке, вызовите ее с ! модификатор,

:make!

См. :help :make, позиция 7.

5 голосов
/ 04 марта 2014

Помимо использования make! (с ударом), смотрите также параметр 'switchbuf' .

Вы можете использовать set switchbuf=split, чтобы всегда использовать новый сплит при открытии файлаfrom quickfix.

Также убедитесь, что вы не установили switchbuf=useopen, что может привести к неожиданным изменениям окна / буфера при просмотре списка быстрых исправлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...