Vim에서 : lgrep 명령 사용 및 결과 숨기기


1

:lgrepVim 에서 명령을 사용 하여 현재 버퍼의 위치 목록을 만드는 것을 좋아 합니다. 예를 들어 다음을 수행하여 Perl 정규식과 함께 사용할 수 있습니다.

:lgrep -P 'pattern' %

그러나 grep이 완료된 후 grep 결과가 표시되어 Vim 세션이 가려지는 것을 좋아하지 않습니다. 결과를 위치 목록 창에 배치하고 grep (화면으로)의 출력을 억제하고 싶습니다. 일반적으로 grep이 완료된 후 Vim은 모든 창을 숨기고 grep 결과를 터미널에 표시합니다. 그런 다음 Press ENTER or type command to continueVim 세션으로 돌아 가야합니다.

이것은 성가신 일입니다.

일반적으로 위치 목록 창을 즉시 열고 해당 창을 사용하여 결과를 탐색합니다. grep 결과가 표시되는 것을 억제하고 ENTER를 눌러 계속 진행하라는 메시지가 표시됩니다.

이게 가능해?

답변:


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.

1
Ctrl-l을 사용하여 나중에 정리를 수행해야한다는 점을 제외하고는 훌륭합니다. 자동으로 다시 칠하는 방법이나 다른 방법이 있습니까?
Michael Goldshteyn

2
시도해 볼 수 있습니다:exe 'silent lgrep -P 'pattern' %' | redraw!
Ingo Karkat

0

:lvim대신에 사용할 수 있습니다 :lgrep.

내부 루틴을 사용하기 때문에 Vim을 일시 중단하지 않으며 사용자가 공격 <CR>하거나 :redraw다른 것을 강요하지 않습니다 .

:lvim pattern % | lw

그리고 정말로 기술이 낮은 접근 방식의 경우 :

:il[ist] pattern
:n <------------------- your chosen line number
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.