Quiero editar varios archivos que coinciden con una expresión global. Por ejemplo, para editar todos los archivos de configuración de git en directorios secundarios, puedo hacer esto en el shell:
vim */.git/config
En la :
línea de comando de Vim , esperaba :find */.git/config
hacer algo similar (es decir, abrir todos los archivos que coinciden con la expresión global), pero en cambio se queja E77: Too many file names
.
¿Hay un comando Vim o una línea para abrir varios archivos que coinciden con una expresión comodín / glob (que no implica escribir una función)?
fuente
:args */.git/config
también llena la lista de búfer, por lo que:bnext
también funciona. ¿Te parece extraño? (Vim 7.4.52 y Neovim)]a
la:args
lista si está instalado github.com/tpope/vim-unimpaired .:argadd file*
puede hacer.**
), debe haberglobstar
configurado, vea: Haga coincidir todos los archivos en todos los directorios anidados con el globing de shell .Para abrir archivos coincidentes en pestañas separadas ...
Explicación:
:n
(:next
) establece la lista del siguiente archivo en todas las coincidencias.tab all
abre todos los archivos en la lista del siguiente archivo en pestañas nuevas.... o ...
Explicación: En
glob(…)
, el 0 significa incluir todos los archivos coincidentes, incluso si de otro modo se ignorarían debido a la configuraciónsuffixes
owildignorecase
. El 1 significa devolver una lista, en lugar de una cadena.exe "tabe" f
es una forma abreviada deexecute "tabedit" f
y significa abrir el archivo especificado por la variablef
en una nueva pestaña.fuente
:n */.git/config | buffer
funciona.No esperes nada antes de leer la documentación.
Además de la respuesta de Tom, puede usar directamente
:next
como alternativa a:args
.fuente
Abrir archivos
vim */.git/config
definitivamente debería funcionar. Si no es así, debe actualizar su Vim a 7.4 (la versión anterior tenía más errores).Alternativamente, pruebe uno de los siguientes (dentro del editor):
fuente
:args
.args
es solo la solución, pero además le muestra cómo usar la expansión de shell dentro de vim it-self en caso de que otros usuarios quieran usarlo para soluciones más complejas, mediante el usofind
, como este . Así que creo que le da un valor adicional a su pregunta. Así que espero que esté bien contigo.vim */foo
, y no hay forma de que pueda estar relacionado con la versión de Vim, porque esa es una función de shell .Obvio, pero no mencionado anteriormente: por ejemplo, busque todos los archivos sql que tengan la cadena create_table en su nombre
y verifícalos
y abra el primero
fuente