Você está usando o vim. Você tem uma ferramenta para fazer isso embutido.
Previsivelmente, já existem sete respostas dizendo para usar grep
. Mas pareço ser a única pessoa até agora que notou da sua pergunta que você está usando vim
. Como tal, embora você possa usar grep
de dentro vim
, você também pode usar vim
a ferramenta interna . Isso é chamado através do :vimgrep
comando
Para pesquisar "todos os arquivos de origem C no diretório atual para chamadas para a função toUpperCase()
", digite o vim
comando
:vimgrep "\<toUpperCase\_s*(" *.c
A lista de correspondências resultante é carregada automaticamente na lista de correções rápidas, acessível por qualquer um dos dois (consulte a ajuda on-line para saber a diferença sutil)
:copen
:cwin
Encontrar a definição da função , em vez de chamá-la, ctags
é a ferramenta, conforme mencionado na Gilles
resposta de , em conjunto com os comandos :tjump
ou :tselect
.
Por que usar :vimgrep
?
A ajuda on-line ( :help grep
) enumera vários dos motivos, que não serão exibidos aqui. Além disso, compare a ação :vimgrep
com a da dietbuddha
resposta . dietbuddha
A linha de comando do bifurca um grep
processo individual para cada arquivo de origem C. Nem sequer é empregado xargs
para reduzir essa sobrecarga. E você ainda precisa analisar de alguma forma a saída para chamar seu editor de texto nos arquivos de origem relevantes, uma vez finalizado. :vimgrep
não realiza múltiplos processos adicionais, e usar o resultado é a própria simplicidade. Simplesmente selecionar uma das entradas na lista de correções resultantes resultante automaticamente posiciona o cursor na linha relevante do arquivo de origem relevante.
De fato, ele faz exatamente o que você escreveu à mão, exceto automaticamente. É a maneira automatizada de executar essas ações do editor de texto. Ele carrega o arquivo como se fosse carregado manualmente, procura uma expressão regular (usando a mesma sintaxe de expressão regular que você já está usando em outros lugares vim
), registra os locais onde as correspondências ocorrem e, em seguida, descarrega o arquivo.