2015-06-26 2 views
2

Я пытаюсь использовать список quickfix в gvim для поиска grep. Это на окнах и я использую Grep из Cygwin, установив следующий в моем файле vimrc:Quickfix list not open file

set grepprg=C:/cygwin64/bin/grep 

Grep отлично работает, когда я делаю:

:grep -R 'LOG' **/*cpp 

Я вижу первый матч и сделать: скопировать, чтобы открыть быстрый список исправлений. Когда я нахожусь там и хочу пойти на матч, попадание в него ничего не делает. При нажатии Ctrl + W + Enter открывается новое пустое окно. Как я могу сделать так, чтобы, когда я нажимаю Enter или Ctrl + W + Enter, он откроет окно к месту матча?

+0

У вас есть '' autochdir дальше? – romainl

ответ

7

По умолчанию изображения Vim в окне быстрого исправления, как вы говорите, <cr> и <c-w><cr> (как указано в :h :lwindow).

Если эти карты не работают, есть несколько проблем, которые могут быть протекающими:

  • У вас есть некоторое отображение осеняющего родные Vim отображения. Проверьте, есть ли у вас какие-либо сопоставления для <cr>, а в окне быстрого определения - :verbose nmap <buffer> <cr> и :verbose nmap <cr>. Сделайте то же самое с <c-w><cr>.
  • Результаты могут быть проигнорированы. Хороший способ сказать, если совпадение игнорируется, линия начнется с ||. Часто это происходит из-за неправильной установки 'grepformat'/'grepprg'.

На личной ноте я нашел grep быть медленным в прошлом, и теперь используют ag the silver searcher или git grep с помощью :Ggrep команды Fugitive.vim «s.

Для получения дополнительной справки смотрите:

:h quickfix 
:h :lwindow 
:h 'grepformat' 
:h :map-verbose 
+0

Спасибо! У меня был || в начале всех строк. Я добавил set grepformat =% f:% l:% m, но это не помогло. Затем я добавил команду -n, чтобы установить grepprg = C: /cygwin64/bin/grep.exe \, и это сделало трюк. – jgelderloos