Spaltet die Verwaltung in Vim [geschlossen]

8

Wenn ich an einem großen und mittelgroßen Projekt arbeite, habe ich oft viele Splits auf meinem Bildschirm und mehrere Tabs, die jeweils mit 5-6 Splits geöffnet sind. Normalerweise benutze ich verschiedene Tabs für verschiedene Verzeichnisse und logische Arbeitsbereiche, um die Arbeit an Feature A von der Arbeit an Feature B oder Bug C und meinen Notizen zu trennen.

Das Verwalten dieses Wahnsinns wird zu einem Problem, wenn Sie viele zusätzliche Splits von Plugins wie NERDTree, Fugitive, Gundo und vielen anderen haben, die gerne zusätzliche Splits machen. Nach dem Öffnen und Schließen eines solchen Helper-Splits ändert sich die gesamte Einstellung in der Höhe und Breite. Ich meine, einige Fenster werden zu klein, einige werden größer als sie ursprünglich waren (und ich muss ihre Höhe und Breite manuell mit CTRL+W > und CTRL+W < und Freunden anpassen.

Normalerweise ist es schneller, die Größe jedes Split mit der Maus zu ändern, aber es ist nicht einmal nahe am Vim-Weg.

Manchmal möchte ich sogar ein paar Splits tauschen oder weiter nach rechts gehen. CTRL+W HJKL helfen nicht immer, da sie die Splits zu weit kicken und die Größe wieder verzerren. Rotation CTRL+W r funktioniert nur in einfachen Fällen.

Wie verwalten Sie viele Puffer, Splits und Tabs?

Bearbeiten : Ich sehe, dass es Stimmen zum Schließen gibt. Die Frage mag Ihnen zu allgemein erscheinen, deshalb gibt es eine konkretere Frage: Was ist ein guter Arbeitsablauf beim Arbeiten mit vielen Puffern und Splits? (Eine der Antworten ist es, Splits zu fördern, um Tabulatoren zu trennen, wenn mehr Platz benötigt wird)

    
imslavko 16.08.2013, 18:20
quelle

4 Antworten

13

Ich verwende Splits nur, wenn ich wirklich zwei Dateien nebeneinander haben muss (weil man als Referenz verwendet wird, normalerweise HTML - CSS zum Beispiel). Ansonsten verwende ich nur normale Puffer, die in einem einzigen Fenster geladen sind. Ich benutze auch keinen Nerdtree oder irgendetwas, das zu viel Platz einnehmen würde.

Ich versuche zu vermeiden, zwischen Dateien zu navigieren: Tags sind ein viel besserer Weg zu gehen.

Mein vim ist eigentlich immer ein großes graues Rechteck.

BEARBEITEN

Das Arbeiten mit mehreren "Dingen" war schon immer ein schwieriges Problem. Mehr noch, wenn wir versuchen, mit vielen dieser "Dinge" gleichzeitig und im selben Raum umzugehen. Es ist ein schweres Problem, weil wir nicht in der Lage sind, gleichzeitig mit mehreren Dingen umzugehen. Unser Verstand ist dafür nicht optimiert. Deshalb ist das Memory-Spiel nicht so einfach, wie es aussieht, warum wir uns nach einer Powerpoint-Diashow voller Listen und Grafiken nicht daran erinnern können, warum Menschen mit einem Telefon in der einen Hand und ihrem Lenkrad in der anderen Hand sterben. p>

Da wir nicht gleichzeitig an 4 Puffern arbeiten können, sollten geteilte Fenster für Situationen reserviert werden, in denen die eigentliche Arbeit in einem Fenster ausgeführt wird und das andere Fenster als Referenz verwendet wird (Dokumentation, ein HTML-Dokument, wenn Sie CSS machen ...) oder für Feedback (Linting, Berechnungsergebnisse ...). In solch einem Setup ist der einzige Teil des Körpers, der zum anderen Fenster wechselt, unsere Augen: Wir brauchen keine Tastaturkürzel oder die Maus.

Aber wir lieben es, unser Leben komplizierter als nötig zu machen. Wir lieben es, uns selbst als Multitasking-Götter zu betrachten, also teilen wir Fenster, wir setzen Fenster in Fenster in Fenster und wir müssen zerbrechliche Hacks finden, um dieses Chaos zu managen. Tastaturkürzel sind aus verschiedenen Gründen keine gültige Lösung und wir hassen die Maus, oder?

Wie auch immer, das Grundproblem bei geteilten Fenstern ist dasselbe wie bei regulären Puffern und Tabs: Um mit Puffer # 3 arbeiten zu können, müssen wir zu Puffer # 3 wechseln. Ob der Puffer # 3 ausgeblendet ist, im rechten oberen Fenster oder in einem anderen Tab angezeigt wird, ist irrelevant, wir müssen ein paar Tasten drücken, um dorthin zu gelangen. Wenn der Zielpuffer ausgeblendet ist, zeigen wir :b3 an, um ihn anzuzeigen. Wenn es im oberen rechten Fenster ist, spielen wir mit <C-w>… mappings, default oder custom. Wenn es in einem anderen Tab ist, tendieren wir dazu, gt zu benutzen, bis wir es finden (oder :sb3 , das ist viel schlauer). Egal welches räumliche Setup wir wählen, wir müssen immer noch zum Ziel wechseln.

Ein Problem, das nur die Art des Layouts betrifft, das Sie verwenden, ist, dass Sie in zwei Dimensionen denken und sich bewegen müssen. Das Springen vom unteren linken Fenster zum rechten oberen Fenster ist nicht wirklich linear (es sei denn, Sie verwenden <C-w>w ) und erfordert viel mehr Denken und Tippen, als einfach nur das Fenster zu betrachten.

Ein weiteres Problem ist die Aufteilung des Arbeitsbereichs und die Auswirkungen auf die Anzahl der Puffer und die Größe der Fenster.

Alles in allem bin ich der Meinung, dass der beste Weg, mit mehreren Puffern umzugehen, darin besteht, Fenster und Tabs in Ruhe zu lassen und einen schlankeren Workflow zu finden.

Reguläre Puffer können auch knifflig sein: Die Art und Weise, wie Sie eine 1,2,5,7 Liste haben können, ist auf ihre Art seltsam. Aber ich glaube, dass das Buffer-Switching (im Gegensatz zur Fensterumschaltung) grundsätzlich intuitiver und solider ist.

%Vor%

Das folgende Mapping macht Switching-Puffer zum Kinderspiel, aber Sie können auch die vielen verfügbaren Puffer-Switching-Plugins ausprobieren.

%Vor%

Meine bevorzugte Navigationsmethode ist jedoch nicht pufferbasiert. Heutzutage finde ich es viel einfacher, tatsächlich die Dateistruktur des Projekts zu vergessen und Tags zu verwenden. Wenn ich herum navigiere, bewege ich mich zu einer bestimmten Klasse oder einer bestimmten Methode oder einem bestimmten Array oder was auch immer. Mein Arbeitsbereich ist nur ein Fenster, das einen von 15 oder 20 Puffern anzeigt und ich habe keinen NERDTree, keine Tabs, keinen MiniBufExplorer, keine TagList ... da der Wechsel zu einem anderen Puffer mindestens ein paar Tastendrücke erfordert, sehe ich keinen gültigen Grund zum Schneiden und Würfeln meines Arbeitsbereichs.

Weil ich mich nicht mit extravaganten Gizmos in eine Ecke lehne, muss ich meine kostbare Zeit nicht damit verschwenden, Workarounds zu umgehen, und ich kann unbeschwert über die neuesten Batch-Makros lachen. Warte, ich meinte "arbeiten".

    
romainl 16.08.2013, 19:28
quelle
6

Splits oder Fenster, wie sie normalerweise genannt werden, sind fragile .

  • Wenn Sie einen Puffer löschen, sind die anderen Puffer nicht betroffen.
  • Wenn Sie eine Registerkarte schließen, sind die anderen Registerkarten nicht betroffen.
  • Wenn Sie ein Fenster schließen, wird Ihr gesamtes Fensterlayout auf unvorhersehbare Weise durcheinander gebracht, was eine langwierige Neuanordnung erfordert (was in Vim schwierig und unbequem ist), immer und immer wieder.

Daher würde ich von einem Arbeitsablauf abraten, der sich um Fenster in Vim dreht.

Mein Tipp: Halten Sie die Anzahl der Fenster in der aktuellen Registerkarte klein. Verwenden Sie Fenster konzentriert und nur für bestimmte Zwecke (Blick auf verschiedene Teile einer Datei, Diff Dateien, Header / Implementierungsdateien, ...). Verwenden Sie Registerkarten für Arbeitsbereiche. Machen Sie sich mit den vielen anderen Mitteln zur Pufferung vertraut: die Pufferliste, :find und die :edit -Familie, Fuzzy-Finder-Plugins, Datei-Explorer usw.

    
glts 16.08.2013 19:39
quelle
3

Probieren Sie ctrl-w <N> > aus, um die Größe auf einmal zu ändern. Falls du das noch nicht machst.

Ich selbst bevorzuge es, stattdessen Tabs zu verwenden. Und ctrl-w shift-t, um eine Teilung in eine separate Registerkarte zu verschieben.

    
aragaer 16.08.2013 18:27
quelle
0

Wie wäre es mit mehr GNU screen oder tmux ? Nur Windows in vim wird dir nicht viel helfen, genau wie du nur mehr Konsolen verwendest.

Mit dem Bildschirm können Sie Sitzungen auch in vim mit :mks speichern.

Und in vim Rebind ctrl+w,h/j/k/l zu nur ctrl+h/j/k/l ! Auch Abkürzungen für die Maximierung vertikal, maximiert horizontal und machen alle Fenster gleich groß helfen. Zur Größenanpassung habe ich auch Shortcuts, aber meistens arbeite ich mit Fullsizing / Resizing alles, Window Management ist nicht das beste Feature von vim, ohne Maus ist es noch schlimmer.

Auszug aus meinem .vimrc :

%Vor%

Für NERDtree zeige ich das Fenster und schließe es wieder. Da etwas damit abgehört wird, öffne ich es und verändere es automatisch auf eine feste Breite:

%Vor%     
sjas 16.08.2013 19:42
quelle

Tags und Links