So bringen Sie vim dazu, mehrere Dateien gleichzeitig in Registerkarten zu öffnen


85

Ist es möglich, vim zu veranlassen, mehrere Dateien in Registerkarten zu öffnen, ähnlich wie der args <path>Befehl mehrere Dateien in Puffern öffnet?

Wenn Sie so etwas tun, :tabe ./*wird der Fehler "E77: Zu viele Dateinamen" ausgegeben, obwohl die Anzahl der Dateien unter dem in der tabpagemaxEigenschaft festgelegten Wert liegt .

(Ich glaube, die vim -p <files>Option wird in Registerkarten geöffnet, aber ich hoffe, einen Weg zu finden, dies zu tun, wenn vim bereits geöffnet ist.)


12
Vielen Dank, dass Sie die Option -p erwähnt haben. das ist, wonach ich gesucht habe
user72923

4
Ich habe diese Frage über Google gefunden. Ich habe gesucht, wie ich vim mit Tabulatoren von der Kommandozeile aus öffnen kann vim -p:-)
Rocket Hazmat



Antworten:


82
:tab all

öffnet alle Dateien in der Argumentliste von Vim in einzelnen Registerkarten. Die Argumentliste wird anfänglich auf die Liste der Dateinamen gesetzt, die beim Starten von Vim in der Befehlszeile angegeben werden. Die Liste kann mit den :argsBefehlen und den zugehörigen Befehlen geändert werden. Sehen

:help :all
:help argument-list

Beispiel:

:args *.c
:tab all

öffnet alle .c-Dateien im aktuellen Verzeichnis in einzelnen Registerkarten.


Ich bin nicht sicher, wie das funktionieren soll. Angenommen, ich möchte alle TXT-Dateien im aktuellen Verzeichnis öffnen. Was würde ich eingeben? Wenn ich eintrete :tab all *.txt, kontert vim mit "E488: Trailing characters"
Ash

Ich habe die Antwort bearbeitet, um zu verdeutlichen, was ich unter "Argumenten" verstehe. Ich meinte eher Vims Argumentliste als Argumente dafür :tab all.
Garyjohn

1
Ich weiß nicht , von einem einzigen Befehl, der das tun kann, aber man kann durch Trennen sie mit einem vertikalen Balken, wie dies zwei Befehle in einer Zeile setzen: :args *.c | tab all.
Garyjohn

9
Der Nachteil ist, dass durch die Verwendung von :tab alldie vorhandenen Registerkarten ersetzt werden. Aus diesem Grund bietet es in meinem Anwendungsfall keinen großen Vorteil gegenüber dem erneuten Öffnen von Dateien mit vim -p. Wenn es jedoch eine Möglichkeit gäbe, vorhandene Registerkarten zu füllen :args, könnte es möglich sein, neue Registerkarten zu öffnen und die vorhandenen beizubehalten.
Kevin Qi

3
Wenn bereits eine Registerkarte geöffnet ist, ersetzen Sie diese argadddurch args.
cdosborn

4

Sie können tatsächlich neue Registerkarten öffnen und Ihre aktuellen Registerkarten behalten, ohne neue Funktionen zu schreiben. Siehe diese Antwort auf Stack Overflow: https://stackoverflow.com/a/11430615/200234

:args file1 file2 | argdo tabe

Möglicherweise möchten Sie :tabevorher eine neue leere Registerkarte ( ) öffnen, da die erste Datei in der aktuellen Registerkarte geöffnet wird. Außerdem bleibt ein zusätzlicher leerer Tab offen (um :help argdozu verstehen, warum).


Wenn Sie einer vorhandenen Gruppe neue Registerkarten hinzufügen, ist das dann nicht einfacher :tabe file1?
Jpaugh

@jpaugh, die Frage betrifft mehrere Dateien.
Mihai Capotă

Würde :args | argdo tabedie Frage aber nicht beantworten? Was ist der Grund für das Hinzufügen neuer Dateien auf diese Weise?
10.

@jpaugh, dies ist, was die Frage fragt: "Ich glaube, die Option vim -p <files> wird in Registerkarten geöffnet, aber ich hoffe, einen Weg zu finden, dies zu tun, wenn vim bereits geöffnet ist."
Mihai Capotă
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.