Quero editar vários arquivos correspondentes a uma expressão glob. Por exemplo, para editar todos os arquivos de configuração do git nos diretórios filhos, eu posso fazer isso no shell:
vim */.git/config
Na :
linha de comando do Vim , eu esperava :find */.git/config
fazer algo semelhante (ou seja, abrir todos os arquivos correspondentes à expressão glob), mas, em vez disso, reclama E77: Too many file names
.
Existe o comando Vim ou uma linha para abrir vários arquivos correspondentes a uma expressão curinga / glob (que não envolve a gravação de uma função)?
fonte
:args */.git/config
preenche a lista de buffers, assim:bnext
também funciona. Isso parece estranho? (Vim 7.4.52 e Neovim)]a
alterna a:args
lista se o github.com/tpope/vim-unimpaired estiver instalado.:argadd file*
pode fazer.**
), você precisa terglobstar
definido, consulte: Combine todos os arquivos em todos os diretórios aninhados com o shell globbing .Para abrir arquivos correspondentes em guias separadas…
Explicação:
:n
(:next
) define a lista do próximo arquivo para todas as correspondências.tab all
abre todos os arquivos na lista do próximo arquivo em novas guias.... ou ...
Explicação: Em
glob(…)
, 0 significa incluir todos os arquivos correspondentes, mesmo se eles fossem ignorados devido às configuraçõessuffixes
ouwildignorecase
. O 1 significa retornar uma lista, em vez de uma string.exe "tabe" f
é uma forma abreviada deexecute "tabedit" f
e significa abrir o arquivo especificado pela variávelf
em uma nova guia.fonte
:n */.git/config | buffer
obras.Não espere nada antes de ler a documentação.
Além da resposta de Tom, você pode usar diretamente
:next
como alternativa:args
.fonte
Abrir arquivos
vim */.git/config
definitivamente deve funcionar. Caso contrário, você deve atualizar o seu Vim para 7.4 (a versão anterior era mais com erros).Como alternativa, tente um dos seguintes (no editor):
fonte
:args
.args
é apenas a solução alternativa, mas mostra ainda mais como usar a expansão do shell no vim-se, caso outros usuários desejem usá-lo para soluções mais complexas, usandofind
, como este . Então, acho que isso dá algum valor adicional à sua pergunta. Então, espero que esteja tudo bem com você.vim */foo
, e não há nenhuma maneira que possa estar relacionada à versão Vim, porque esse é um recurso do shell .Óbvio, mas não listado acima - exemplo encontre todos os arquivos sql com a cadeia create_table em seu nome
e verifique
e abra o primeiro
fonte