Vim quickfix открывает файлы запуска на новой вкладке
Скажем, у меня есть:
map <F4> :execute "vimgrep /" .expand("<cword>") . "/j **" <Bar> cw<CR>
который greped (рекурсивно) текущий каталог для экземпляров текущего слова, в котором находится курсор, и открывает эти файлы в окне списка быстрого уточнения.
В окне quickfix, как я могу открыть файл, который я открываю на новую вкладку? Enter просто меняет текущий буфер на этот новый файл.
Ответы
Ответ 1
Команды окна Quickfix относятся к опции switchbuf
при открытии буфера.
Опция switchbuf
имеет спецификатор newtab
, который инструктирует Vim открывать
новую вкладку перед загрузкой буфера для переключения. Если добавить этот ключ
к опции, результаты быстрого нажатия будут открываться на отдельных вкладках.
:set switchbuf+=newtab
Существует спецификатор usetab
, который также может быть полезен в этом случае. Это
предписывает Vim переключиться на существующую закладку, если она содержит окно
отображая целевой буфер, вместо того, чтобы дублировать его на новой вкладке.
:set switchbuf+=usetab,newtab
Значение switchbuf
также (частично) влияет на другое переключение буфера
команды, такие как :bfirst
, :blast
, :sbuffer
, :sbnext
, :sbprevious
.
Ответ 2
autocmd FileType qf nnoremap <buffer> <Enter> <C-W><Enter><C-W>T
также работает, если вы используете:
tab copen
который в противном случае сначала разделил бы окно, даже с set switchbuf+=newtab
.
Смотрите также: https://vi.stackexchange.com/questions/6996/how-to-make-enter-open-new-tabs-for-the-quickfix-window-when-it-is-opened-with
Ответ 3
Как насчет того, чтобы попробовать QFEnter плагин?
Вы можете открыть каждый элемент на новой вкладке или в новом окне вертикального/горизонтального разделения без изменения параметра switchbuf
.
Он также позволяет вам сразу открывать несколько элементов быстрого исправления с помощью блока визуального выделения.