Antworten:
Der Befehl, den Sie suchen, lautet args:
Beispielsweise:
:args /path_to_dir/*
öffnet alle Dateien im Verzeichnis
:tab all, können Sie sie in einzelne Registerkarten einfügen.
"/path_to_dir/subdir/" Illegal file name). Schnelle Lösung besteht darin, den zweiten Befehl auszuführen argd */, um diese wieder aus der Liste zu entfernen
:argdo source my_commands_batch.vim
Warum funktioniert es nicht, wenn ich alle Dateien öffnen möchte, die mit einer bestimmten Erweiterung enden? Ich habe es versucht
:n ./**.cs
und öffnet nur die Dateien im aktuellen Verzeichnis.
Ich habe die Antwort gefunden. Der richtige Code ist :n **/*.cs
Für mehr Informationen :h find
Hast du versucht
:n /some/path/*
Es werden alle Dateien in / some / path geöffnet
Ich glaube nicht, dass die Datei rekursiv geöffnet wird.
BEARBEITEN
Möglicherweise wird die Verwendung von ** rekursiv geöffnet, wie von daf erwähnt
Eine Methode, mit der Sie nicht herumspielen müssen, argsbesteht darin, die Liste der Dateien in eine Textdatei einzufügen und dann mit dem :soBefehl die Befehle in dieser Datei auszuführen.
Wenn Sie beispielsweise alle Dateien öffnen möchten, die .phpin einem bestimmten Verzeichnis enden , erstellen Sie zunächst eine files.txtListe mit Dateien, denen der Befehl vorangestellt ist, mit dem Sie sie öffnen möchten.
sp alpha.php
sp bravo.php
sp charlie.php
Dann innerhalb von vim:
:so files.txt
Wenn die Liste der Dateien groß ist, ist es relativ einfach, die files.txtDatei schnell zu generieren , indem Sie die Ausgabe lsin eine Datei umleiten und dann spvor jedem Dateinamen ein vim-Makro voranstellen .
Dies ist offensichtlich nicht so elegant wie die Verwendung der Befehle argsund argdo, aber diese Befehle sind auch viel komplizierter.
Es könnte auch eine Möglichkeit geben, dies mit einem einzigen Befehl in der Befehlszeile zu tun, aber selbst nach 16 Jahren finde ich die Vim-Programmierung immer noch seltsam und geheimnisvoll.
Eine andere Möglichkeit, Dateien rekursiv zu öffnen
find . -type f -exec vi {} \;
kate **/*(^/)(unter Verwendung der zsh-Globbing-Syntax) das Notwendige getan wird: Dateien aus dem angegebenen Verzeichnis werden rekursiv geöffnet. Es ist nicht "von innen" und es verwendet überhaupt kein vim, aber es "tut noch, was benötigt wird". Oder sogar kate ~/.vimrc ~/.bashrc. Weglassen von "from withing", "from the gegebenes Verzeichnis" und "rekursiv" insgesamt, aber es "tut noch, was benötigt wird": öffnet Dateien.
Wenn Sie der Argumentliste hinzufügen möchten;
:arga what_you-d_like_to_add
sehen
:he arga
von / in vim für weitere Informationen.
**diese Option , um Dateien rekursiv abzugleichen. ZB:args /path_to_dir/**