Pergunta

Para ilustrar, aqui está como fazê-lo a partir da linha de comando:

vim `grep "hello" * -Rl`

Isso abre vim com todos os arquivos que têm "Olá" neles (-l dá os nomes de arquivos sozinho). Eu quero fazer a mesma coisa, mas de dentro vim. Conceitualmente, algo como isto (que não funciona):

:args !grep "hello" * -Rl

Estou aberto a completamente diferentes abordagens para alcançar este objectivo; Eu só gostaria que fosse em uma linha (por isso é fácil de editar e refazer).


A resposta é simplesmente usar acentos graves - , mas com uma condição chave A seguir não funciona para mim, por causa dos citações ao redor hello:

:args `grep "hello" * -Rl`

Mas ele funciona se eu removê-los ou escapar as aspas:

:args `grep hello * -Rl`
:args `grep \"hello\" * -Rl`

(este foi enterrado nos comentários após resposta caos - eu adicionei-los aqui para torná-los mais visíveis, em caso alguém teve este problema)

Foi útil?

Solução

Bem, isso funciona para mim:

:args `grep -Rl "hello" *`

Running vim 7.0.305.

Outras dicas

Tente o comando args:

:ar[gs] `grep -Rl "hello" .`

Se os acentos graves não estão funcionando para você, é você usar você estiver usando uma versão atual do vim?

:version
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top