Frage

Ich habe an der Fähigkeit sieht Tabs in Vim zu verwenden (mit :tabe, :tabnew, etc.) als Ersatz für meine derzeitige Praxis der offenen in versteckten Puffern im gleichen Fenster viele Dateien haben.

würde ich jede eindeutige Datei möchte, dass ich offen für immer in einem eigenen Tab zu sein. Allerdings gibt es einige Dinge, die in der Art und Weise dies zu bekommen. Wie behebe ich diese:

  1. Wenn Befehle wie gf und ^] Sprung zu einer Position in einer anderen Datei, die Datei in einem neuen Puffer im aktuellen Tab geöffnet wird. Gibt es eine Möglichkeit all diese möglichen Befehle, um die Datei in einem neuen Tab geöffnet zu haben, oder wechseln Sie in den vorhandenen Registerkarte mit der Datei, wenn sie bereits geöffnet sind?

  2. Wenn Puffer Schalt kann ich :b <part of filename><tab> und es werden die Namen der Dateien in vorhandenen Puffer vervollständigen. <part of filename> kann sogar mitten in einem Dateinamen anstelle von Anfang an. Gibt es ein Äquivalent zum Umschalten Registerkarten?

War es hilfreich?

Lösung

Stop, stop, stop.

Das ist nicht, wie Vims Tabs verwendet werden soll, um. In der Tat sind sie falsch benannt. Ein besserer Name wäre „Ansichtsfenster“ oder „Layout“, denn das ist, was eine Registerkarte-es ist ein anderes Layout der Fenster von alle des vorhandenen Puffer.

Der Versuch, Vim in 1 tab == 1 Puffer zu schlagen ist eine Übung in Sinnlosigkeit. Vim weiß nicht, oder kümmern und es wird nicht auf alle Befehle in respektieren insbesondere alles, was die Quickfix-Puffer verwendet (:make, :grep und :helpgrep sind diejenigen, die in den Sinn) werden gerne Tabs ignorieren und es gibt nichts, was man das tun zu stoppen.

Statt:

  • :set hidden
    Wenn Sie diesen Satz noch nicht haben, dann tun Sie dies. Es macht vim Arbeit wie jeder andere Multiple-Datei-Editor auf dem Planeten. Sie haben können Puffer bearbeitet, die irgendwo nicht sichtbar in einem Fenster sind.
  • Verwenden Sie :bn, :bp, :b #, :b name und ctrl-6 wechseln zwischen den Puffern. Ich mag ctrl-6 selbst (allein es schaltet auf den zuvor verwendeten Puffer oder #ctrl-6 Schalter Nummer # zu puffern).
  • Verwenden Sie :ls zur Liste Puffer oder ein Plugin wie MiniBufExpl oder BufExplorer

Andere Tipps

Bit spät zur Party hier aber überrascht, dass ich nicht die folgend in dieser Liste nicht sehen:

:tab sball - dies öffnet einen neuen Tab für jeden offenen Puffer

.

:help switchbuf - diese Pufferschaltverhalten steuert, versuchen :set switchbuf=usetab,newtab. Dies sollte auf die bestehenden Register bedeutet Umschalten, wenn der Puffer geöffnet ist, oder einen neuen erstellt, wenn nicht.

Vim :help window erklärt die Verwirrung "Tabs vs Puffer" ziemlich gut.

  

Ein Puffer ist der In-Memory-Text einer Datei.
   Ein Fenster ist ein Ansichtsfenster    auf einen Puffer.
  Eine Registerkarte ist eine Sammlung von Fenstern.

mehrere Dateien zu öffnen, ist in vim mit Puffer erreicht. In anderen Editoren (z Notepad ++) wird dies mit Tabs getan, so in vim der Name Tab vielleicht irreführend.

Fenster sind für den Zweck der den Arbeitsbereich aufzuteilen und mehrere Dateien (Puffer) zusammen auf einem Bildschirm angezeigt werden. In anderen Editoren könnte dies durch das Öffnen mehrere GUI-Fenster und auf dem Desktop neu anordnen erreicht werden.

Schließlich in dieser Analogie Vims Seiten , um mehrere Desktops entsprechen würde, dh verschiedene Umlagerungen von Fenstern.

vim help: tab-page eine Registerkarte erklärt verwendet werden kann, wenn man will, eine Datei vorübergehend bearbeiten, aber will nichts im aktuellen Layout von Fenstern und Puffern ändern. In einem solchen Fall kann eine andere Registerkarte verwendet zum Zweck werden nur diese bestimmte Datei zu bearbeiten.

Natürlich müssen Sie daran denken, dass die gleiche Datei in vielen Registerkarten oder Fenstern Anzeige in der Anzeige die gleiche Arbeitskopie führen würde (Puffer).

Im Gegensatz zu einigen der anderen Antworten hier, ich sage, dass Sie Registerkarten verwenden können, wie Sie wollen. vim wurde entwickelt, vielseitig und anpassbar zu sein, anstatt Sie zwingt nach vorgegebenen Parametern zu arbeiten. Wir alle wissen, wie wir Programmierer lieben unsere „Ethik“ auf alle anderen zu verhängen, so dass diese Leistung ist sicherlich ein Hauptmerkmal.

<C-w>gf ist die Lasche Äquivalent von Puffern gf Befehl. <C-PageUp> <C-PageDown> und wird zwischen den Tabs wechseln. (In Byobu diese beiden Befehle nie für mich arbeiten, aber sie arbeiten außerhalb von Byobu / tmux. Alternativen sind gt und gT.) <C-w>T wird das aktuelle Fenster auf eine neue Registerkarte verschieben.

Wenn Sie, dass vim eine vorhandene Registerkarte, wenn möglich bevorzugen würden, anstatt ein Duplikat Tab erstellen, hinzufügen :set switchbuf=usetab zu Ihrer .vimrc Datei. Sie können newtab in die Liste (:set switchbuf=usetab,newtab) hinzufügen zu zwingen QuickFix-Befehle, die Anzeigefehler kompilieren in separaten Tabs zu öffnen. Ich ziehe es stattdessen split, die die Kompilierung Fehler in einem geteilten Fenster öffnet sich.

Wenn Sie Mausunterstützung mit :set mouse=a aktiviert haben, können Sie mit den Registerkarten interagieren indem Sie auf sie. Es gibt auch eine + Schaltfläche standardmäßig, die einen neuen Tab schaffen wird.

Für die Dokumentation auf Registerkarten, Typ :help tab-page im Normalbetrieb. (Wenn Sie das tun, können Sie ein Fenster auf einen Reiter <C-w>T Praxis zu bewegen.) Es gibt eine lange Liste von Befehlen. Einige der Fenster-Befehle haben mit Registerkarten zu tun, so dass Sie möglicherweise in dieser Dokumentation aussehen wollen auch über :help windows.

Zusatz: 2013.12.19

Um in einer separaten Registerkarte mit jeder Datei, mehrere Dateien in vim zu öffnen, verwenden vim -p file1 file2 .... Wenn Sie wie ich sind und immer vergessen -p hinzufügen möchten, können Sie es am Ende hinzufügen, wie vim die normalen Befehlszeilenoption Parsing-Regeln folgt. Alternativ können Sie ein Bash-Alias-Mapping vim vim -p hinzuzufügen.

Ich lief in das gleiche Problem. Ich wollte Tabs wie Puffer arbeiten und ich nie ganz gelingt, sie zu bekommen. Die Lösung, die ich auf endgültig entschieden war, Puffer wie Tabs zu verhalten!

Überprüfen Sie das Plugin aus aufgerufen Mini Buffer Explorer , einmal installiert und konfiguriert ist, können Sie mit Puffern arbeiten virtaully die gleiche Art und Weise wie Reiter ohne jede Funktionalität zu verlieren.

Dies ist eine Antwort für diejenigen, die nicht mit Vim und Herkunft aus anderen Texteditoren (in meinem Fall Sublime Text).

Ich las alle diese Antworten und es war immer noch nicht klar. Wenn Sie sie lesen Sie genug Dinge beginnen Sinn zu machen, aber es hat mich Stunden hin und her zwischen den Fragen geht.

Die erste Sache ist, wie andere haben erklärt:

Tab Seiten , die viel wie Tabs klingen , wirken sie wie Tabs und eine Menge wie Registerkarten in den meisten anderen GUI-Editoren aussehen, aber sie sind es nicht. Ich denke, es ist ein schlechtes mentales Modell, das in Vim gebaut auf wurde, die leider die zusätzliche Leistung Wolken, die Sie innerhalb einer Registerkarte haben.

Die erste Beschreibung, die ich verstanden wurde von @ gekerbt Antwort ist, dass sie das Äquivalent zu mehreren Desktops sind. Wenn in diesem Zusammenhang gesehen hatte Sie immer nur ein paar Desktops haben geöffnet, aber in jedem offen viele GUI Fenster.

Ich würde sagen, sie in anderen Editoren / Browsern ähnlich sind:

  1. Tab Gruppierungen
  2. Sublime Text Workspaces (das heißt eine Liste der geöffneten Dateien, die Sie in einem Projekt haben)

Wenn Sie sie sehen, wie, dass Sie die Macht von ihnen erkennen, dass man leicht Gruppe Sätze von Dateien (Puffer) zusammen z.B. Ihre CSS-Dateien, Ihre HTML-Dateien und Ihre JS-Dateien in verschiedenen Registerkarten. Und das ist eigentlich ziemlich genial.

Andere Beschreibungen, die ich verwirrend

finden

Ansichtsfenster

Das macht keinen Sinn für mich. Ein Ansichtsfenster, die, obwohl sie einen definiert Wörterbuch Begriff hat, habe ich gehört, nur auf Vim Fenster beziehen im :help window doc. Ansichtsfenster ist kein Begriff, den ich jemals in Bezug auf Editoren wie Sublime Text, Visual Studio, Atom, Notepad ++ gehört habe. In der Tat würde ich nie über sie für Vim gehört, bis ich begann Seiten Registerkarte versuchen Sie es mit.

Wenn Sie Registerkarten wie mehrere Desktops zu sehen, dann als ein einzelnes Fenster auf einem Desktop-Bezug erscheint seltsam.

Workspaces

Das vielleicht mehr Sinn macht, die Wörterbuch-Definition ist:

  

Eine Speichereinrichtung zum vorübergehenden Gebrauch.

Es ist also wie ein Ort, an dem Sie eine Gruppe von Puffern gespeichert werden.

Ich habe anfangs nicht klingen wie Sublime Konzept einen Arbeitsbereich des Textes, der ist eine Liste aller Dateien, die Sie in Ihrem Projekt geöffnet haben:

  

die Erhabene-Workspace-Datei, die benutzerspezifischen Daten, wie zum Beispiel der geöffneten Dateien und die Änderungen an jeden enthält.

Doch darüber mehr zu denken, dies nicht einverstanden ist tatsächlich. Wenn Sie eine Vim Registerkarte wie ein Sublime Text Projekt betrachten, dann wäre es seltsam erscheinen, nur eine Datei geöffnet in jedem Projekt zu haben und hält zwischen den Projekten wechseln. Daher warum öffnen nur eine Datei auf eine Registerkarte mit ungerade ist.

Sammlung von Fenstern

Die :help window bezieht sich auf Registerkarten auf diese Weise. Sowie zahlreiche weitere Antworten verwenden das gleiche Konzept. Allerdings, bis Sie Ihren Kopf herumkommen, was ein vim Fenster ist, dann ist das nicht viel, wie der Bau eine Burg auf Sand.

Wie ich oben erwähnt, ein vim Fenster ist das gleiche wie ein Ansichtsfenster und ruhig hervorragend in diesen erklärt linux.com Artikel :

  

Eine wirklich nützliche Funktion in Vim ist die Fähigkeit, den sichtbaren Bereich zwischen einer oder mehrer Dateien zu teilen, oder einfach nur aus dem Fenster zu spalten zwei Bits der gleichen Datei leichter zu sehen. Die Vim-Dokumentation bezeichnet dies als ein Ansichtsfenster oder Fenster, austauschbar.

     

Sie können bereits vertraut sein mit dieser Funktion, wenn Sie jemals von Vim Hilfe-Funktion verwendet haben: HilfeThema oder die F1-Taste drücken. Wenn Sie Hilfe eingeben, teilt Vim das Ansichtsfenster und öffnet die Hilfe-Dokumentation im oberen Bildfenster, das Dokument öffnet im unteren Ansichtsfenster zu verlassen.

Ich finde es seltsam, dass eine Registerkarte, um als eine Sammlung von Fenstern bezeichnet wird anstelle einer Sammlung von Puffern. Aber ich denke, Sie zwei separate Registerkarten jeweils geöffnet haben können mit mehreren Fenstern alle auf dem gleichen Puffer zeigen, zumindest das ist, was ich bisher verstehen.

Mit Blick auf    : Hilfe Registerkarten es sieht nicht so aus vim will, wie Sie tun, um arbeiten ...

Die Puffer werden über Registerkarten geteilt, so scheint es nicht möglich, einen bestimmten Puffer zu sperren nur auf einer bestimmten Registerkarte angezeigt werden.

Es ist eine gute Idee, though.

könnten Sie erhalten wahrscheinlich den Effekt, den Sie durch die Verwendung eines Terminal möchten, die Registerkarten, wie Multi-gnome-terminal unterstützt, dann vim Instanzen in jedem Terminal Tab aufgerufen wird. Nicht perfekt, aber ...

  • Sie können Befehle Karte, die normalerweise Puffer manipulieren Registerkarten zu manipulieren, wie ich mit gf in meinem .vimrc getan haben:

    map gf :tabe <cfile><CR>
    

    Ich bin sicher, Sie können das gleiche tun mit [^

  • Ich glaube nicht vim unterstützt dies für Registerkarten (noch) nicht. Ich verwende gt und gT zum nächsten und vorherigen Laschen zu bewegen, respectively. Sie können auch Ngt verwenden, wobei N die Registerkarte Zahl ist. Ein peeve ich habe, ist, dass standardmäßig die Registerkarte Nummer nicht auf der Registerkarte Zeile angezeigt wird. Um dies zu beheben, habe ich ein paar Funktionen am Ende des meine .vimrc Datei (ich habe hier nicht einfügen weil es lange und formatiert nicht korrekt).

Ich benutze Puffer wie Tabs, mit der BufExplorer Plugin und ein paar Makros:

" CTRL+b opens the buffer list
map <C-b> <esc>:BufExplorer<cr>

" gz in command mode closes the current buffer
map gz :bdelete<cr>

" g[bB] in command mode switch to the next/prev. buffer
map gb :bnext<cr>
map gB :bprev<cr>

Mit BufExplorer Sie haben nicht eine Tab-Leiste an der Spitze, aber auf der anderen Seite spart es Platz auf dem Bildschirm, plus Sie können eine unbegrenzte Anzahl von Dateien / Puffer geöffnet haben und die Pufferliste ist durchsuchbar ...

Wenn Sie Puffer wollen wie Tabs arbeiten Besuche die tabline Plugin .

Das wird ein einzelnes Fenster, und fügt eine Linie auf der Oberseite die Registerkarten zu simulieren (nur die Liste der Puffer angezeigt). Dies kam vor langer Zeit, wenn Tabs nur in GVim unterstützt wurde, aber nicht in der Befehlszeile vim. Da es nur mit Puffer in Betrieb ist, alles integriert sich gut mit dem Rest der vim.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top