Usando: comando lgrep no Vim e ocultando resultados

1

Adoro usar o comando :lgrep no Vim para criar uma lista de locais para o buffer atual. Por exemplo, eu posso usá-lo com um regex Perl fazendo:

:lgrep -P 'pattern' %

No entanto, eu não gosto do fato de que os resultados do grep são exibidos, obscurecendo minha sessão do Vim, depois que o grep é concluído. Eu quero que os resultados sejam colocados na janela da lista de locais, mas para que a saída do grep (para a tela) seja suprimida. Normalmente, depois que o grep é concluído, o Vim oculta todas as janelas e exibe os resultados do grep no meu terminal. Então eu tenho que Press ENTER or type command to continue para voltar para a sessão do Vim.

Isso é irritante.

Eu geralmente abro imediatamente uma janela de lista de locais e navego os resultados usando essa janela. Eu quero suprimir a exibição dos resultados do grep e, em seguida, solicitando que eu pressione ENTER para continuar.

Isso é possível?

    
por Michael Goldshteyn 19.03.2014 / 16:58

2 respostas

5

Sim, basta prefixar :silent ao comando:

:silent lgrep -P 'pattern' %

Trecho de :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.
    
por 19.03.2014 / 17:19
0

Você pode usar :lvim em vez de :lgrep .

Como ele usa uma rotina interna, ele não suspende o Vim e não obriga você a acessar <CR> ou :redraw anything:

:lvim pattern % | lw

E para uma abordagem realmente de baixa tecnologia:

:il[ist] pattern
:n <------------------- your chosen line number
    
por 20.03.2014 / 01:14

Tags