Вы всегда можете сделать <up>
в командной строке с префиксом :vimgrep
, чтобы упростить историю поиска. Вы также можете проверить q:
и использовать ?
/ /
для поиска команды для повторного выполнения.
Если заголовок быстрого исправления установлен правильно, вы можете использовать следующую команду:
:execute get(getqflist({'title':1}), 'title')
Это, однако, я не уверен, что это будет работать со всеми командами :grep
/ :make
. Вам также нужна более новая версия Vim, чтобы получить заголовок списка Quckfix (я думаю, Vim 8+).
Если вы обнаружите, что делаете это часто, возможно, вы захотите связать отображение или команду.
command! -nargs=0 -bar QFRefresh execute get(getqflist({'title':1}), 'title')
Теперь, как добавить это сделать автоматически? Мы можем использовать FileChangedShellPost
autocmd для запуска нашей команды QFRefresh
после обнаружения изменения файла. Добавьте следующее vimrc
file:
augroup QFRefresh
autocmd!
autocmd FileChangedShellPost * if get(b:, 'qfrefresh_auto', 0) | QFRefresh | endif
augroup END
command! -nargs=0 -bar QFAutoRefreshToggle let b:qfrefresh_auto = !get(b:, 'qfrefresh_auto', 0) | echo b:qfrefresh_auto ? 'Auto Refresh' : 'No Auto Refresh'
Теперь вы можете использовать :QFAutoRefreshToggle
для переключения обновления файла.
Примечание. Как указывалось ранее, QFRefresh
использует заголовок быстрого исправления для получения команды быстрого исправления. Если заголовок установлен неправильно, обновление может работать некорректно. Также я не уверен, какие гарантии дает Vim для запуска FileChangedShellPost
. Вы можете выполнить проверку с помощью команды :checktime
.
Для получения дополнительной помощи см .:
:h getqflist()
:h :execute
:h :get
:h q:
:h cmdwin
:h c_Up
:h FileChangedShellPost
:h :checktime