Warum bevorzugen Vim-Experten Puffer gegenüber Tabs?

243

Ich weiß nicht verstehen Puffer. Wenn ich 3 Dateien auf derselben Registerkarte öffne und mein Fenster schließe, ärgere ich mich im Allgemeinen darüber, dass ich beim nächsten Öffnen einer dieser Dateien merkwürdige Auslagerungsdateien habe, die verweilen und mir lästige Nachrichten geben. Aber immer wieder las ich, dass diese Dinge das Produktivitäts-Nirvana sind, das ich verpasse, und dass Tabs für die Plebejer gemacht wurden.

Ich frage Sie, den Vim-Experten: Was sind die Vorteile der Verwendung von Puffern gegenüber Registerkarten? Ich sehe nicht ein, wie der Unterschied grundlegend anders sein könnte, aber ich würde mich beim Betrieb von Vim nur als Anfänger bis Fortgeschrittene betrachten. Ist das :ls :b#wirklich viel schneller als gtherumlaufen? Ich denke, es muss tiefer gehen.

2c2c
quelle
6
Für diejenigen, die Vim lernen oder von anderen GUI-basierten Editoren stark beeinflusst werden, würde ich dringend empfehlen, zuerst die Antwort von @Jonathan Brink zu lesen und dann hier zur obersten Antwort zurückzukehren.
icc97
1
Mach dir keine Sorgen. Ich verwende Registerkarten als primäre Navigationsmethode zwischen Dateien. Wie Sie sagen, ist <#> gt einfach zu tippen. Um die Verwendung noch einfacher zu gestalten, passe ich meine Tabellendaten so an, dass sie die Tab-Nummer enthalten. Wenn ich mehr als einen Puffer gleichzeitig anzeigen muss, teile ich ein neues Fenster innerhalb der Registerkarte. Trotz der Behauptungen von @romaini macht mich diese Art der Verwendung von Vim sehr produktiv, da sie zu meinen persönlichen Metaphern passt. Beachten Sie auch, dass ich in einer 37-jährigen Karriere als Programmierer noch nicht mehr als fünf oder sechs Dateien gleichzeitig geöffnet haben musste - und das sehr selten. Mach was für dich funktioniert. :)
Tony
Mach was funktioniert. Einige Benutzer verwenden viele Dateien in einer Sitzung, sodass Puffer viel wichtiger sind. Sogar Bram Moolenaar sagt: "Organisiere sie, wie du willst." Das Öffnen von 20 Registerkarten ist nicht der richtige Weg, aber Registerkarten für einige Dateien sind nicht das Ende der Welt. Brams Lösung zur Verwaltung vieler Dateien besteht darin, mehrere Terminalsitzungen zu eröffnen. Er sagt, dass er es so macht, aber nicht, dass jeder es so machen sollte.
Handwerk
Der offensichtlichste Unterschied, der nicht richtig hervorgehoben zu werden scheint, besteht darin, dass Sie, wenn Sie auf einer Registerkarte bleiben, mehrere Puffer gleichzeitig anzeigen können, indem Sie :splitin "Fenster" tippen. Wenn Sie alle Ihre Puffer (Dateien) in separaten Registerkarten haben, erhalten Sie diese gleichzeitige Ansicht nicht. Ich würde empfehlen, vim zunächst mit 1 Registerkarte zu lernen und sich an Splits zu gewöhnen.
NeilG

Antworten:

500

Wie ZyX auf #vim sagte, klingt diese Frage wie "Warum bevorzugen Vim-Experten lecker gegenüber warm?" .

"Vim-Experten" bevorzugen keine Puffer gegenüber Registerkarten: Sie verwenden Puffer als Datei-Proxys und Registerkarten als Arbeitsbereiche. Puffer und Registerkarten haben unterschiedliche Zwecke, daher macht es keinen Sinn, einander vorzuziehen.

Das Problem mit Puffern und Registerkarten ist eine Verwirrung , die durch eine Kombination unabhängiger Fakten verursacht wird.

  1. Die meisten "modernen" Texteditoren und IDEs verwenden eine Tabulatormetapher , um geladene Dateien darzustellen. Diese Metapher fungiert als Informationssystem - sie zeigt dem Benutzer, welche Dateien geöffnet sind und welchen Status sie haben - und als interaktives Gerät ermöglicht sie dem Benutzer, diese geöffneten Dateien zu bearbeiten (neu anzuordnen, auszuwählen, zu schließen ...). Trotz ihrer vielen Einschränkungen sind Registerkarten überall und die Leute sind an sie gewöhnt und erwarten sie überall.

  2. Vim führte in 7.0 Registerkarten ein, mit denen Benutzer Ad-hoc- "Arbeitsbereiche" erstellen können. Nichts in ihren Funktionen, ihren spezifischen Optionen, ihren spezifischen Befehlen oder ihren :helpAbschnitten legt nahe, dass Registerkarten als Datei-Proxys verwendet werden könnten oder sollten.

    Natürlich nichts außer dem Namen und dem Erscheinungsbild von "Registerkarten", was zu viel Verwirrung führt.

  3. Ohne :set hidden, das standardmäßig deaktiviert und nicht leicht zu finden ist, macht es Vim unmöglich, zu einem anderen Puffer zu wechseln, ohne den aktuellen zu schreiben oder seine Änderungen aufzugeben. Neue Benutzer, denen diese Option nicht bekannt ist, haben keine andere Wahl, als sich der Verwendung von Windows oder der nächstgelegenen "tab-ähnlichen" Funktion zuzuwenden, die sie finden können: Registerkarten.

"Registerkarte" ist eine unglückliche Namenswahl für diese Funktion, insbesondere in einer Zeit, in der die Idee dominiert wird, dass das Lesen von Dokumentation Zeitverschwendung ist.

In Vim sind Registerkarten eine Abstraktion, die auf Fenstern aufgebaut ist, selbst eine Abstraktion, die auf Puffern aufgebaut ist. Jede neue Ebene fügt nützliche Funktionen hinzu, schränkt jedoch Ihren Workflow ein.

Der "Pufferweg"

Bei einem pufferbasierten Workflow werden die Dateien, mit denen Sie arbeiten, auf eine einzige Dimension verteilt. Sie können durch Ihre Puffer blättern, Sie können auf einen bestimmten Puffer zugreifen, indem Sie einen Teil seines Namens (mit Abschluss) oder seiner Nummer eingeben. Sie können zwischen Puffern wechseln und sie ganz einfach als Ziel festlegen. Es gibt im Grunde keine Reibung.

  1. Acht Puffer geöffnet, nur einer sichtbar:

    Acht Puffer öffnen sich

  2. Umschalten nach Nummer:

    Umschalten nach Nummer

  3. Nach Namen wechseln:

    Nach Namen wechseln

Puffer sind Vims Datei-Proxys. Wenn Sie in Dateien denken, denken Sie in Puffern.

Der "Fensterweg"

Bei einem fensterbasierten Workflow werden Ihre "Dateien" in derselben "virtuellen" Dimension verteilt, wie wenn Sie nur Puffer verwenden würden, und in zwei anderen "physischen" Dimensionen. Die kartesischen Räume, in denen sich diese Dimensionen befinden, sind jedoch fast vollständig voneinander getrennt: Das Verschieben in einen anderen Puffer bedeutet immer noch "Verschieben in eine andere Datei", das Verschieben in ein anderes Fenster jedoch nicht. Der Puffer, der der gewünschten Datei entspricht, kann in diesem Fenster angezeigt werden, er kann jedoch auch in einem anderen, möglicherweise auf einer anderen Registerkarte oder überhaupt nicht angezeigt werden.

Mit Windows wird das Navigieren zwischen geöffneten Dateien entweder mit 'switchbuf'und zu komplex oder zu einfach :sb. Meistens, weil Sie gezwungen sind, zwei Befehlssätze für das zu verwenden, was im Wesentlichen dasselbe ist: den Zugriff auf einen Puffer.

Windows hat ihre Verwendung, wie unten beschrieben, aber sie haben nicht das Zeug, Puffer im Workflow eines anderen zu ersetzen.

Hier arbeite ich an einem Vim-Farbschema. Die beiden Fenster sind unterschiedliche Ansichten desselben Puffers: Das obere dient als Referenz mit einer Tabelle der im Farbschema verwendeten Farbcodes, und im unteren Fenster arbeite ich:

Arbeiten an einem Farbschema

Windows ist nicht als Datei-Proxy konzipiert und kann nicht zu einem solchen gemacht werden: Es handelt sich um "Container" oder "Ansichtsfenster", die Ihnen einen Blick in einen Puffer bieten sollen. Nicht mehr und nicht weniger.

Der "Tab-Weg"

Mit einem tabulatorbasierten Workflow versuchen Sie im Wesentlichen, die Benutzererfahrung nachzuahmen, die Sie von Ihrem vorherigen Editor gewohnt sind, während Sie die Natur der Registerkarten von Vim vollständig ignorieren. Wenn wir für einen Moment vergessen, dass diese Strategie im Allgemeinen sehr unproduktiv ist, ist es ebenso wie bei Windows unmöglich, Vim zu zwingen, dieses Paradigma "eine Datei = eine Registerkarte" einzuhalten, ohne viel Flexibilität zu verlieren .

Die Tabline arbeitet immer noch mit denselben Dateien wie oben und nimmt einen erheblichen Speicherplatz ein, der praktisch keinen Nutzen bringt. Alle meine Dateien und alle meine Registerkarten werden aufgerufen, javascript*.vimsodass ich nicht 3gtsicher sein kann, dass ich am richtigen Ort lande und es unmöglich ist, eine bestimmte Registerkarte mit Namen zu erreichen. Hinzu kommt, dass die Beschriftung sehr wenig hilfreich, aber durchaus logisch sein kann [Quickfix List]. Da es keine praktische Möglichkeit gibt, eine Datei / einen Puffer an eine Registerkarte zu binden, bleibt Ihnen im Grunde nur eine praktische Möglichkeit, zwischen Registerkarten zu navigieren / Puffer / Dateien: Radfahren.

Und ja, meine Tabline ist mit nur 8 Tabs überfüllt. Stellen Sie sich vor, ich hätte 20!

  1. Acht Puffer öffnen sich auf acht Registerkarten (falsch)

    Falsch

  2. Zwei Registerkarten für zwei spezifische Aufgaben (rechts)

    Richtig

Registerkarten sind "Container" oder "Ansichtsfenster", die ein oder mehrere Fenster enthalten sollen, selbst auch "Container", die Puffer enthalten sollen.

Abschließend

"Vim-Experten" (nehmen wir an, ich kann sprechen, als wäre ich einer) bevorzugen keine Puffer gegenüber Tabs: Sie verwenden Vim nur so, wie es entworfen wurde, und sind mit diesem Design vollkommen zufrieden:

  • "Vim-Experten" haben 2, 30 oder 97 Puffer geladen und sind sehr froh, dass sie sich nicht mit der räumlichen Verteilung befassen müssen.

  • Wenn sie zwei Dateien vergleichen oder in einem Teil des aktuellen Puffers arbeiten müssen, während ein anderer als Referenz verwendet wird, verwenden "Vim-Experten" Windows, da sie auf diese Weise verwendet werden sollen.

  • Wenn sie eine Weile an einem separaten Teil des Projekts arbeiten müssen, ohne ihre aktuelle Ansicht zu beeinträchtigen, laden "Vim-Experten" eine brandneue Registerkarte.

romainl
quelle
10
Für einige zusätzliche Links siehe meine Verwendung Puffer effektiv Post
Peter Rincker
7
@ DavidEG, 20 Puffer zu haben ist überhaupt nicht problematisch, so dass es wirklich keinen harten Bedarf für ein Plugin gibt. Auf der anderen Seite passen 20 Registerkarten - unabhängig davon, ob sie Datei-Proxys überzeugen oder nicht - nicht auf die meisten Bildschirme, Plugins oder nicht.
Romainl
2
@Kache, ja, das ist genau der Kern meines Punktes: Sie können Fenster und Registerkarten für das verwenden, was sie sind, aber nicht als Datei-Proxys. Das Argument ist also nicht, ob Benutzer Registerkarten oder Puffer verwenden sollen, sondern ob Benutzer Registerkarten als Datei-Proxys verwenden sollen oder nicht.
Romainl
14
Als „Vim - Experte“ kann ich mehr als 4 sagt , dass hundert Puffer „offen“ (eigentlich „aufgeführt, aber entladen, bis auf ein paar Einsen“) ist eine regelmäßige Situation , wenn ich mit Projekt wie NeoVim befassen (ich alle einfach öffnen *.c, *.h, scripts/*und test/**/*.luaDateien). Da mein Terminal nur 239 Spalten breit ist, kann der Ansatz „Eine Datei pro Tab“ nicht verwendet werden.
ZyX
3
Und da es eine Reihe von Plugins gibt (Command-T,…), die das Wechseln zwischen Puffern und / oder Dateien mithilfe von Registerkarten für relativ große Projekte erleichtern, macht dies keinen Sinn. Und neovim mit 500 „interessanten“ Dateien ist ein großes Projekt, aber nicht das größte. Wenn Sie mit solchen Projekten konfrontiert werden müssen, verwenden Sie immer eine Art Suche, um darin zu navigieren (Datei- / Tag-Suche mit Command-T und Freunden, verschiedene Möglichkeiten zur Symboldefinition), und Sie haben absolut keinen Grund, Registerkarten zu verwenden Auf diese Weise: In jedem Fall verwenden Sie keine tabulatorgebundenen Funktionen zum Navigieren im Projekt.
ZyX
88

Früher habe ich jeden Puffer in einem eigenen Register zu halten, aber ich wuchs ständig müde gtund gT-ing überall herum.

Ich hatte auch das Gefühl, dass Puffer zu schwierig zu verwalten sind.

Hier sind einige Techniken, die meine frühere Meinung völlig verändert haben:

Hier ist mein typischer Workflow:

  • Öffnen Sie Vim und verwenden Sie :e(normalerweise mit einem regulären Ausdruck wie :e src/**/F*Bar.js), um einen Puffer zu öffnen
  • Erkenne, dass ich eine andere Datei öffnen muss. Verwenden Sie :eauch dafür. Wenn ich zwischen diesem Puffer und dem aktuell geöffneten Puffer wechseln möchte, verwende ich ihn :spoder :vspöffne ihn in einem separaten Fenster.
  • Wiederholen Sie diesen Vorgang, bis ich die 3-5 Dateien habe, zwischen denen ich wechseln werde. Verwenden Sie dazu die Techniken in der obigen Liste mit Aufzählungszeichen, um zwischen Ihren Puffern zu wechseln.
  • Wenn ich mit meinen Puffern "von vorne anfangen" möchte, schließen Sie einfach Vim und öffnen Sie es erneut.

Ich hatte das Gefühl, dass es nach ungefähr einer Woche, in der diese neuen Muster erzwungen wurden, viel einfacher wurde, mir vorzustellen, welche Puffer ich geöffnet hatte und wie ich mit nur wenigen automatischen Strichen zu einem von ihnen gelangen konnte.

Jonathan.Brink
quelle
24
Es ist eine Schande, dass freundliche benutzer- / neulingfreundliche Erklärungen wie diese etwa 3% der positiven Stimmen von sehr einfühlsamen, abfälligen, übermäßig komplexen Antworten erhalten, wie z. Ich wusste nicht einmal, dass dies gTder Befehl zum Wechseln der Registerkarten war. Ich hatte nach dem Ersatz für gesucht ctrl+tab. Vielen Dank, dass Sie einem neuen Benutzer wirklich geholfen haben, anstatt ihn nur dumm zu machen.
icc97
11
Ich muss sagen, dass mein Kommentar der Antwort von @ romainl nicht gerecht wird. Er war sehr glücklich, Fragen zu beantworten, die ich dazu hatte. Aber sicherlich ist Ihre Antwort für jemanden, der versucht, Vim zu lernen, viel einfacher zu verstehen, aber seine Antwort ist vollständiger, sobald Sie tatsächlich ein bisschen mehr wissen.
icc97
3
Ich denke, die Antwort von @ romainl ist äußerst nützlich und gibt uns ein klares Bild davon, wie Puffer, Fenster und Registerkarten gestaltet sind und wie sie verwendet werden sollen. Trotzdem denke ich, dass Vim-Benutzer die Chance nutzen, Fragen so zu beantworten, wie Sie es nicht wollen , und das kann frustrierend sein.
Keyofnight
3
Ich kann mich nicht erinnern, woher ich es habe, aber es nnoremap <leader>b :ls<CR>:b<space>ist sehr gut, um die Puffer schnell zu wechseln, da es Ihnen eine Liste der aktuell geöffneten Puffer zeigt. Außerdem werden Teilnamen akzeptiert (solange nur eine Übereinstimmung vorliegt).
naught101
1
Diese Methode hat auch den wirklich großartigen Vorteil der automatischen Vervollständigung von vim (Standard, keine zusätzlichen Plugins). Da Sie mehrere Puffer verwenden, wenn Sie sich im Einfügemodus befinden und ein ctrl Noder ctrl Pausführen (P ist das, was ich normalerweise verwende), erhalten Sie eine Liste von Wörtern, um die Eingabe zu beenden. Es ist intelligent, basierend auf Ihrer aktuellen Puffer, solche in Splits, solche, die Sie gerade gesehen haben, und jede andere geöffnete Datei!
g19fanatic
12

Der Nachteil von Registerkarten ist, dass Sie jeweils nur den Inhalt sehen können. Wenn Sie sie also wie in einem Browser verwenden, verlieren Sie die Möglichkeit, mehrere Puffer nebeneinander oder sogar einzelne Teile derselben Datei in Teilungen anzuzeigen. Daher empfehlen viele, Registerkarten nur zum Trennen verschiedener Arbeitsbereiche zu verwenden (z. B. eine für ein Java-Projekt, eine andere für eine Aufgabenliste, eine dritte zum Hacken eines Skripts an der Seite).

Die von Ihnen beschriebenen Probleme lassen den Eindruck entstehen, dass Sie Vim falsch verwenden. Entweder haben (meistens) eine einzelne, dedizierte Instanz. Dann werden ausgeblendete Puffer einfach "wieder angezeigt", wenn Sie sie erneut bearbeiten (und Sie können sie jetzt über die Pufferliste abrufen), und es werden keine Swap-Dateimeldungen angezeigt. Oder verwenden Sie separate Vim-Instanzen pro Projekt / Datei / Bearbeitungssitzung, aber machen Sie es sich dann zur Gewohnheit, :quitjede Instanz vollständig zu bearbeiten, wenn Sie mit der Datei fertig sind.

Ingo Karkat
quelle
Ich benutze gelegentlich Splits. Mir war nicht bewusst, dass sie als "Verwendung von Puffern" angesehen wurden. Für mich ist das wirklich ein mysteriöses Konzept.
2c2c
1
Als interessante Wiederentdeckung von Registerkarten kann tabman ein NerdTree-ähnliches Seitenfeld generieren, in dem alle Puffer aufgeführt sind, wie sie in den einzelnen Registerkarten angezeigt wurden.
Llinfeng
7

Ein weiterer Tipp: Wenn Sie den Puffernamen als Argument für: buffer verwenden, müssen Sie nicht ganze Namen angeben. Wenn jedoch mehr als ein Puffer mit dem angegebenen Argument übereinstimmt, werden die Puffer nicht umgeschaltet.

Jedes Fragment des Puffernamens kann zum Abgleichen verwendet werden. Zum Beispiel, wenn Sie die Puffer haben request_manager.javaund queue_manager.javadann :buffer queoder :b quemit beiden übereinstimmen, aber zu queue_manager.java wechseln, wie es am Anfang übereinstimmt.

Julius Martin
quelle
3

Ich verwende Tabs, Ctrl- Pund Vim-Sitzungen in meinem Workflow und habe seit über einem Jahr:

  • Ich habe )und bin ("zum nächsten Tab" bzw. "zum vorherigen Tab" zugeordnet. tnöffnet eine neue Registerkarte. Ich benutze auch Tabm, um die Dinge zu organisieren.

  • Ich verwende Vim-Sitzungen für Gruppen von Dateien, die sich auf die aktuelle Story / den aktuellen Fehler beziehen, an dem ich arbeite, normalerweise nach Kategorien. Diese Sitzungen werden im Laufe des Prozesses überschrieben.

  • Ich habe noch nichts Besseres gefunden als Ctrl- P, aber es dauert ein bisschen, bis alle Dateien gefunden sind.

ShangoThrax
quelle
1

Wirft 2c in den Stapel.

TLDR; :b *part-of-filename*Dies ist der beste Weg, um eine Datei in der Pufferliste zu finden, dh sie ist SCHNELLER und hat eine geringere kognitive Belastung als Puffernummern, Registerkarten oder Fenster zum Verfolgen von Dateien.

Es ist nichts für mich, 30 Puffer offen zu haben (dh ich habe mich nicht um die Hauswirtschaft gekümmert), und das Schöne an den verwendeten Puffern ist, dass es mich überhaupt nicht verlangsamt. Tatsächlich beschleunigt es die Dinge, wenn ich vier Tage nach dem Öffnen der Datei, die ich benötige, :b *part-of-filename*anrufe und sie auf magische Weise erscheint, was Mitarbeiter und toady Kollektivisten gleichermaßen beeindruckt.

Puffer sind für Dateien.

Effektiv sein:

  • Öffnen Sie eine wichtige erste Datei aus einem teuflisch gut ausgewählten Stammverzeichnis
  • Öffnen Sie nachfolgende Dateien mit :e
  • Verwenden lsSie die ganze Zeit, wenn Sie anfangen, ein gutes mentales Modell zu erhalten (Sie können nicht verstehen, was Sie nicht sehen können, weder mental noch wörtlich).
  • Niemals :qbläst es
  • Treten Sie :bin Ihr Muskelgedächtnis ein
  • :b1 ist gut für die erste Datei, von der Sie wissen, dass Sie sie geöffnet haben, da sonst Zahlen und Buchstaben schnell ungeschickt werden
  • :b# ist gut für den Wechsel zu Ihrer letzten Datei, was ein häufiger Bedarf ist
  • :bd#ist gut geeignet, wenn Sie zu einer temporären Datei gewechselt haben, das getan haben, was Sie tun mussten, mit zurückgeschaltet :b#haben und diese temporäre Datei jetzt schließen möchten
  • :b *part-of-filename* Dies ist ansonsten der beste Weg, um eine Datei zu finden, die Sie in der Liste benötigen, dh sie ist SCHNELLER und hat eine geringere kognitive Belastung als Puffernummern, Registerkarten oder Fenster zum Verfolgen von Dateien.

Das einzige Ärgernis :b *part-of-filename*ist, dass Sie die Datei manchmal noch nicht geöffnet haben und :e path/to/full-filenamezuerst zurückgehen müssen.

Registerkarten dienen zur Unterscheidung von wirklich nicht verwandten Dateien.

Oder ein bestimmtes Windows-Layout griffbereit zu halten (Haftungsausschluss: Ich habe es selbst nie dafür verwendet).

Oder für Dateien, die selten verwendet werden, aber vorhersehbar benötigt werden. Für mich ist das normalerweise eine commitMessageDatei, die ich während der Arbeit mit Anmerkungen versehen muss, damit ich nicht zu viel nachdenken muss, wenn es darum geht, ein Commit durchzuführen. gtist schneller als :b com<enter>(wenn Sie Glück haben, sonst :b com<tab><enter>)

  • :tabe commitMessage
  • gtoder gTauch ein Muskelgedächtnis Favorit

Fensteraufteilungen dienen zum visuellen Vergleich von Informationen

Oder ich habe sofortigen Zugriff auf wichtige Informationen (ehrlich gesagt, wenn diese Informationen nicht irgendwie etwas sind, mit dem ich live aktualisieren muss, z. :eB. eine Protokolldatei, ziehe ich den Inhalt normalerweise einfach in die aktuelle Datei und beschäftige mich dort damit).

  • :vspoder C-w vöffnet eine vertikale Teilung dh links | Richtig, dann verwenden Sie :boder :e, um die gewünschte Datei zu erhalten
  • :spoder C-w söffnen Sie eine horizontale Teilung, dh oben / unten
  • C-w C-w dh doppelte Strg-W, dreht Sie um die verfügbaren Fenster
  • C-w c aktuelles Fenster schließen
  • C-w o Schließen Sie alle anderen Fenster und halten Sie NUR den aktuellen Stand
Paul Parker
quelle
Unglaublich nützliche Antwort, sollte viel mehr positive Stimmen haben. Vielen Dank für die Tipps, insbesondere den Einblick in Ihren Workflow mit :b#und :bd#!
Alacritas
0

Fügen Sie diese zu Ihren hinzu .vimrcund fangen Sie an, Puffer zu lieben:

:nnoremap <Tab> :n<cr>
:nnoremap <S-Tab> :N<cr>

Auf diese Weise können Sie im normalen Modus über Tab/ vorwärts / rückwärts durchlaufen ShiftTab.

sjas
quelle
5
Tu das nicht. Sie verlieren die Zuordnung für <C-I>. Karte <C-Tab>stattdessen, wenn Sie wirklich wollen.
6
Auch :nund :Nbeziehen sich auf die Argumentliste, nicht offene Puffer. Du würdest wollen :bnund :bp( :bnextund :bprev). tpope's unbeeinträchtigt bietet Mappings ]bund [bdafür (und andere gute Sachen), wenn Sie wollen. (und ), oder <left>und <right>Pfeile, wären wahrscheinlich weniger nützliche Tasten zum Überschreiben als Tabulatoren, wenn Sie wirklich eine kurze Zuordnung wünschen.
Vaz
1
@jeyoung stimmte zu - es ist auch viel sinnvoller zu verwenden, Ctrl + Tabda dies die meisten anderen GUI-Editoren und Browser verwenden.
icc97
0

Ich möchte eine brillante Implementierung von vor einigen Jahren vorschlagen : kien / tabman.vim . Es wird Folgendes klargestellt:

  • Man kann irgendwo so viele Puffer haben, die sorgfältig versteckt sind;
  • Mit Registerkarten sollen Puffer auf kreative Weise angezeigt werden.
    • Mit einem richtigen Tabline-Plugin können alle versteckten Puffer in der oberen Reihe (Tabline) angezeigt werden.
    • Nach meiner Erfahrung mit vim-airline werden in der Tabline nur sehr wenige relevante Informationen angezeigt, wenn ich einen neuen Tab erstelle.
    • Zwei Tags belegen nebeneinander den Tabline-Slot und verschwenden den Rest der horizontalen Räume
    • Schlimmstenfalls habe ich keine Ahnung mehr, welche Puffer versteckt sind.

Es war eine wunderbare Wiederentdeckung dieses magischen Plugins, das auch einige Jahre in meiner Vim-Konfiguration bleiben sollte. Während ich weiterhin nach etwas suchen würde, das auch alle versteckten Puffer anzeigt, ist TabMan mein Übermensch, wenn es darum geht, aus der Vogelperspektive zu sehen, wie Puffer auf verschiedenen Registerkarten angeordnet sind.

llinfeng
quelle
0

Ich lade "ausgewählte" Puffer als Registerkarten, um schnell (TAB / S-TAB) zwischen ihnen umzuschalten. Der Rahmen der Arbeitsbereiche passt hierher, da für mich Puffer VS-Registerkarten meistens die Sichtbarkeitssache sind. Ich kann wichtige / Arbeitsdateien in Fenstern und Registerkarten einfügen und diejenigen ausblenden, die ich derzeit nicht im Hintergrund verwenden muss, ohne mich an Pfade erinnern zu müssen, oder mir Zeit nehmen, um sie zu suchen und erneut zu laden, wenn dies erforderlich ist. Dies ermöglicht die Bearbeitung mehrerer Aufgaben oder Projekte in einer VIM-Sitzung. Ich denke, dies war früher bei Maschinen mit wenig Arbeitsspeicher wichtig, eignet sich aber auch gut, um alle Bearbeitungsaufgaben unter einem Anwendungsrahmen zu konzentrieren. Ich habe auch Verknüpfungen zum CtrlVerschieben von Puffern auf -Richtig / Links eingestellt, damit ich auch schnell durch verschiedene Puffer wechseln kann.

Unterm Strich kann man für seine Zwecke nur so viele Fenster aufteilen, wie es für den Bildschirm erforderlich ist. Man kann jedoch mehrere Fenstereinstellungen auf mehreren Registerkarten speichern, wodurch der Arbeitsbereich erweitert und der Workflow verbessert wird, sodass komplizierte Aufgaben, die mehr als eine Datei umfassen, bequem aufgeteilt werden können .

Für die Auslagerungsdateien können Sie VIM anweisen, alle in einem Ordner Ihrer Bezeichnung zu speichern. Für diesen Gebrauch :set directory.

Elig
quelle