Ich möchte mehrere Dateien bearbeiten, die einem Glob-Ausdruck entsprechen. Um beispielsweise alle Git-Konfigurationsdateien in untergeordneten Verzeichnissen zu bearbeiten, kann ich dies in der Shell tun:
vim */.git/config
In der Vim- :
Befehlszeile hatte ich erwartet :find */.git/config
, etwas Ähnliches zu tun (dh alle Dateien zu öffnen, die dem Glob-Ausdruck entsprechen), aber stattdessen beschwert es sich E77: Too many file names
.
Gibt es einen Vim-Befehl oder einen Einzeiler, um mehrere Dateien zu öffnen, die einem Platzhalter- / Glob-Ausdruck entsprechen (ohne dass eine Funktion geschrieben werden muss)?
quelle
:args */.git/config
tatsächlich auch die Pufferliste,:bnext
funktioniert also auch. Scheint das seltsam? (Vim 7.4.52 und Neovim)]a
zykliert die:args
Liste, wenn github.com/tpope/vim-unimpaired installiert ist.:argadd file*
kann tun.**
) verwenden zu können, müssen Sie Folgendes festgelegt habenglobstar
: Siehe Alle Dateien unter allen verschachtelten Verzeichnissen mit Shell-Globbing abgleichen .So öffnen Sie übereinstimmende Dateien in separaten Registerkarten…
Erläuterung:
:n
(:next
) setzt die Liste der nächsten Dateien auf alle Übereinstimmungen.tab all
öffnet alle Dateien in der Liste der nächsten Dateien in neuen Registerkarten.… oder …
Erläuterung: In
glob(…)
bedeutet 0, dass alle übereinstimmenden Dateien eingeschlossen werden, auch wenn sie ansonsten aufgrund der Einstellungensuffixes
oder ignoriert würdenwildignorecase
. Die 1 bedeutet, anstelle einer Zeichenfolge eine Liste zurückzugeben.exe "tabe" f
ist eine Kurzform vonexecute "tabedit" f
und bedeutet, die von der Variablen angegebene Dateif
in einer neuen Registerkarte zu öffnen .quelle
:n */.git/config | buffer
funktioniert.Erwarten Sie nichts, bevor Sie die Dokumentation gelesen haben.
Zusätzlich zu Toms Antwort können Sie direkt
:next
als Alternative zu verwenden:args
.quelle
Das Öffnen von Dateien sollte auf
vim */.git/config
jeden Fall funktionieren. Wenn dies nicht der Fall ist, sollten Sie Ihr Vim auf 7.4 aktualisieren (die vorherige Version war fehlerhafter).Versuchen Sie alternativ eine der folgenden Möglichkeiten (im Editor):
quelle
:args
.args
ist nur die Problemumgehung, zeigt Ihnen jedoch, wie Sie die Shell-Erweiterung in vim it-self verwenden können, falls weitere Benutzer sie für komplexere Lösungen verwenden möchtenfind
, indem Sie diese verwenden . Ich denke, es gibt Ihrer Frage einen zusätzlichen Wert. Also ich hoffe es geht dir gut.vim */foo
und es gibt keine Möglichkeit, die mit der Vim-Version in Verbindung gebracht werden könnte, da dies eine Shell- Funktion ist.Offensichtlich, aber oben nicht aufgeführt - Beispiel finden Sie alle SQL-Dateien, deren Name die Zeichenfolge create_table enthält
und überprüfe sie
und öffne den ersten
quelle