1

Мне нравится использовать команду :lgrep в Vim для создания списка местоположений для текущего буфера. Например, я могу использовать его с регулярным выражением Perl, выполнив:

:lgrep -P 'pattern' %

Однако мне не нравится тот факт, что результаты grep отображаются, скрывая мой сеанс Vim, после завершения grep. Я хочу, чтобы результаты были помещены в окно списка местоположений, но для вывода grep (на экран) было подавлено. Обычно после завершения grep Vim скрывает все окна и отображает результаты grep в моем терминале. Затем я должен Press ENTER or type command to continue чтобы вернуться к сеансу Vim.

Это раздражает.

Обычно я сразу же открываю окно списка местоположений и перемещаюсь по результатам, используя это окно. Я хочу подавить отображение результатов grep, а затем предложить мне нажать ENTER, чтобы продолжить.

Это возможно?

2 ответа2

5

Да, просто добавьте :silent к команде:

:silent lgrep -P 'pattern' %

Выдержка из :help :silent :

  ":silent" will also avoid the hit-enter prompt.  When
  using this for an external command, this may cause the
  screen to be messed up.  Use |CTRL-L| to clean it up
  then.
0

Вы можете использовать :lvim вместо :lgrep .

Поскольку он использует внутреннюю процедуру, он не приостанавливает работу Vim и не заставляет вас нажимать <CR> или :redraw что-либо:

:lvim pattern % | lw

И для действительно низкотехнологичного подхода:

:il[ist] pattern
:n <------------------- your chosen line number

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .