Angenommen, ich habe vim folgendermaßen gestartet:
vim foo bar
Jetzt entscheide ich, dass ich jede dieser Dateien in einem eigenen Tab haben möchte. Gibt es eine Möglichkeit, dies zu tun, ohne vim zu beenden und die -p
Option zu meiner Befehlszeile hinzuzufügen ?
tabe %
das in der Antwort von liuyang1 unten erwähnt wird.:tabe %
funktioniert es nicht mit Puffern, die keinen gültigen Dateipfad haben.:tab sb
funktioniert immer.Antworten:
Wenn Sie vim so starten, erhalten Sie keinen vim-Client, der Texteditor verwendet die Terminal- oder Cmd-Eingabeaufforderung - die beiden Dateien befinden sich in zwei verschiedenen Puffern. Verwenden Sie,
:ls
um die Puffer aufzulisten:Das% a ist der aktive Puffer. Sie können
:b2
mit zu Puffer 2 wechseln oder mit:bn
zum nächsten oder:bp
vorherigen wechseln . Ich bevorzuge (STRG-W v), Fenster vertikal zu teilen, anstatt (STRG-W s), das horizontal geteilt wird.Wenn Sie (noch) 2 Dateien und keine Tabs geladen haben, können Sie
:tabnew
und im neuen Tab-Typ:b2
Wenn Sie immer Puffer in ihre eigenen Registerkarten laden möchten, lesen Sie diesen Artikel .
quelle
vim
wird ein Editor innerhalb der Shell gestartet. Um die vim grafische Benutzeroberfläche zu erhalten, muss ich verwendengvim
. Und Sie haben Recht - Puffer sind für die vim-Anwendung global.Sie möchten einen Puffer in einem neuen Tab öffnen?
Teilen Sie den Bildschirm auf (Strg-Ws), öffnen Sie ein Fenster und drücken Sie Strg-Wt
quelle
Ctrl-w T
nicht. Natürlich hat die erste Registerkarte auf diese Weise immer noch zwei Puffer.:ls
.Sie können dies erreichen, indem Sie den
tab
Befehl mit demsb[uffer]
Befehl kombinieren .Zuerst müssen Sie die Puffer-ID des Puffers kennen, den Sie in einem neuen Tab öffnen möchten. Dies können Sie mit dem
ls
Befehl herausfinden :Sobald Sie die ID haben, können Sie sie ganz einfach in einem neuen Tab öffnen:
Der
sb
Befehl öffnet normalerweise den angegebenen Puffer in einem neuen geteilten Fenster, aber dertab
Befehl bewirkt, dass er stattdessen in einer neuen Registerkarte geöffnet wird.Mit dem
tab
Befehl können Sie auch angeben, wo in der Registerkartenliste die neue Registerkarte erstellt werden soll.:0tab sb 2
Dies würde beispielsweise dazu führen, dass die neue Registerkarte "Leiste" am Anfang der Liste und nicht nach der aktuellen Registerkarte angezeigt wird.quelle
:tab buffer part-of-name
keinen neuen Tab öffnete! Aber:tab sb part-of-name
wie ein Zauber gearbeitet. Danke!!!!Ein besserer Weg, um das zu erreichen, wonach OP gefragt hat, ist der folgende:
:bufdo tab split
Dadurch wird jeder Puffer in einem eigenen Tab geöffnet, egal wie viele es gibt. Wenn Sie so viel verwenden, ist es einfach, eine Zuordnung in Ihrer .vimrc zu erstellen. In Kombination mit so etwas wie diesem kleinen Vim-Plugin öffnet das Folgende jedes Item von
:grep
(oder : Ack ) in einem eigenen Tab:Wenn Sie auf ein Plugin zurückgreifen, ist es natürlich einfach genug, es zu ändern, um den Inhalt der Quickfix-Liste direkt in Registerkarten zu öffnen.
UPDATE : Ich muss den Kommentar von ggustafsson unbedingt begrüßen. Es ist bei weitem die beste Antwort und zeigt auf wunderbare Weise Vims Tendenz zum kompositorischen Verhalten. Der Vorschlag ist:
Es lohnt sich, die Vim-Hilfe für : tab und : sball aufzurufen, um zu sehen, was hier vor sich geht.
quelle
:bufdo execute "tabnew %"
. Ich denke, der neue Ansatz ist etwas klarer.:tab sball
scheint besser zu funktionieren.1. Öffnen Sie zwei Dateien in Vim.
2. Überprüfen Sie die Anzahl der Puffer.
3. Verketten Sie zwei Befehle
tabnew
, um eine neue Registerkarte zu öffnen undb <buffer_number>
den gewünschten Puffer in die Registerkarte zu laden.quelle
:tab sb 2
Füge nur einen Punkt hinzu, den andere nicht erwähnt haben.
Wenn Sie mehrere Fenster haben,
<C-W>T
wird dieses Fenster auf eine neue Registerkarte verschoben. Diese Verknüpfung gilt jedoch nur für "Fenster", nicht für "Puffer". Wenn Sie diesen Stil bevorzugen:sp
oder<C-W>s
den aktuellen Puffer in ein weiteres Fenster kopieren möchten<C-W>T
, verschieben Sie ihn in eine neue Registerkarte.4 Tastenanschläge oder 7 Tastenanschläge.
:tabe %
um eine neue Registerkarte für den aktuellen Puffer zu öffnen.7 Tastenanschläge.
Wenn Sie das CtrlP-Plugin verwenden, können Sie auch "CtrlPBuffer" verwenden und dann mit der
<C-t>
Verknüpfung eine neue Registerkarte öffnen. Dieser Stil, leicht zu verschiedenen Puffern zu wechseln.Mit der Tastenkombination "CtrlPBuffer" 4 oder mehr Tastenanschläge.
quelle
:tabe %
habe ich lange gesucht, danke!:tabe %
öffnet nicht wirklich eine neue Registerkarte für den aktuellen Puffer. Was passiert, ist, dass es%
auf den Dateipfad des aktuellen Puffers erweitert wird und:tabe
diesen Pfad öffnet. Vim erkennt, dass Sie versuchen, eine bereits geöffnete Datei zu öffnen, und verwendet den vorhandenen Puffer erneut. Dies bedeutet, dass dies bei Puffern ohne Dateipfad nicht funktioniert. Wenn Sie eine neue Datei mit öffnen:new
und diese noch nicht gespeichert haben, können Sie sie damit nicht auf einer neuen Registerkarte ablegen. Der eigentliche Befehl, den Sie brauchen, ist der, den rkjnsn in ihrer Antwort angegeben hat::tab sb %
oder kürzer::tab sb