Je souhaite modifier plusieurs fichiers correspondant à une expression globale. Par exemple, pour éditer tous les fichiers de configuration git dans les répertoires enfants, je peux le faire dans le shell:
vim */.git/config
Sur la :
ligne de commande Vim , je m'attendais :find */.git/config
à faire quelque chose de similaire (c'est-à-dire ouvrir tous les fichiers correspondant à l'expression glob), mais à la place, il se plaint E77: Too many file names
.
Existe-t-il une commande Vim ou une ligne pour ouvrir plusieurs fichiers correspondant à une expression générique / glob (qui n'implique pas d'écrire une fonction)?
la source
:args */.git/config
remplit également la liste des tampons, donc ça:bnext
marche aussi. Cela vous semble-t-il étrange? (Vim 7.4.52, et Neovim)]a
la:args
liste si github.com/tpope/vim-unimpaired est installé.:argadd file*
Peut aussi faire.**
), vous devez avoirglobstar
défini, voir: Faire correspondre tous les fichiers sous tous les répertoires imbriqués avec globbing shell .Pour ouvrir les fichiers correspondants dans des onglets séparés…
Explication:
:n
(:next
) définit la liste des fichiers suivants sur toutes les correspondances.tab all
ouvre tous les fichiers de la liste des fichiers suivants dans de nouveaux onglets.… ou …
Explication: dans
glob(…)
, le 0 signifie d'inclure tous les fichiers correspondants, même s'ils seraient autrement ignorés en raison des paramètressuffixes
ouwildignorecase
. Le 1 signifie retourner une liste, au lieu d'une chaîne.exe "tabe" f
est une forme abrégéeexecute "tabedit" f
et signifie ouvrir le fichier spécifié par la variablef
dans un nouvel onglet.la source
:n */.git/config | buffer
œuvres.N'attendez rien avant de lire la documentation.
En plus de la réponse de Tom, vous pouvez directement l'utiliser
:next
comme alternative à:args
.la source
L'ouverture de fichiers par
vim */.git/config
devrait certainement fonctionner. Si ce n'est pas le cas, vous devriez mettre à niveau votre Vim vers 7.4 (la version précédente était plus boguée).Vous pouvez également essayer l'une des options suivantes (dans l'éditeur):
la source
:args
.args
n'est qu'une solution de contournement, mais en plus, elle vous montre comment utiliser l'expansion du shell dans vim it-self au cas où d'autres utilisateurs voudraient l'utiliser pour des solutions plus complexes, en utilisantfind
, comme celle-ci . Je pense donc que cela donne une valeur supplémentaire à votre question. J'espère donc que ça vous va.vim */foo
, et il n'y a aucun moyen qui pourrait être lié à la version Vim, car c'est une fonction shell .Évident, mais non répertorié ci-dessus - par exemple, recherchez tous les fichiers sql ayant la chaîne create_table dans leur nom
et vérifiez-les
et ouvrez le premier
la source