VIM: Wie kann ich eine Datei auf der rechten Seite als vsplit von einem NerdTree-Bedienfeld auf der linken Seite aus öffnen?

82

Ich habe das NerdTree Plugin installiert.

Wie kann ich eine Datei auf der rechten Seite als vsplit von einem linken NerdTree-Bedienfeld aus öffnen?

shibly
quelle

Antworten:

86

Es gibt einen sBefehl, der jedoch eine Datei öffnet, die links vom aktuellen Puffer aufgeteilt ist. Sie können dann aber Ctrl+ drücken W r, um die Fenster zu tauschen.

grimgav
quelle
3
Das ist in Ordnung, aber wenn ich eine andere Datei öffnen möchte, die s eingibt, erhalte ich ein anderes geteiltes Fenster, aber ich möchte das ältere geteilte Fenster durch die aktuell geöffnete Datei ersetzen. Wie kann ich das tun?
voraussichtlich
5
Es scheint, dass nach dem Hinzufügen einer Datei in NerdTree set splitright, wie von @PrinceGoulash vorgeschlagen, seine Teilung nach rechts geöffnet wird, ohne dass dies erforderlich ist Ctrl-W r. Wenn ich Sie richtig verstehe, können Sie, wenn Sie sich nur an zwei vertikal geteilte Fenster halten möchten, zum älteren Fenster wechseln und über NerdTree eine neue Datei darin öffnen, indem Sie einfach darauf klicken Enter.
Grimgav
Nein, ich versuche zu sagen, dass es zwei vsplit-Fenster gibt, das linke ist das Nerdtree-Menü. Wenn ich "s" drücke, kommt es auf die rechte Seite. Es wird kein vsplitted-Fenster mehr angezeigt.
voraussichtlich
@guru Dann möchten Sie das neue Fenster "öffnen", nicht "teilen". Im zuletzt ausgewählten Puffer wird immer ein Fenster geöffnet / ersetzt. Leider wird es höchstwahrscheinlich die linke Ihrer beiden geöffneten sein. Nicht ideal, aber eine Möglichkeit könnte darin bestehen, die Fenster über zu drehen Ctrl+W R, dann die Datei zu öffnen und zurückzudrehen.
JHannes
156

So vsplitstellen Sie den neuen Puffer rechts neben den aktuellen Puffer:

set splitright

Um splitden neuen Puffer unter den aktuellen Puffer zu setzen:

set splitbelow

Ich habe dies jedoch nicht mit NerdTree versucht.

Prinz Gulasch
quelle
3
ok, aber wie kann ich eine vsplited-Datei öffnen, die die ältere ersetzt?
voraussichtlich
1
@shibly Wenn Sie festgelegt haben splitright, können Sie die aktuell rechts befindliche Datei beenden vsplit newfilenameund die neue Datei dort ablegen , wo sich die alte befand. Sie können diese auch in einer Zeile wie folgt ausführen : q | vsplit newfilename. Dies setzt voraus, dass die Datei rechts die aktive ist.
SunSparc
1
soeben getestet, funktioniert splitright gut mit nerdtree. Beachten Sie, dass dies alle weiteren Teilungen horizontal statt vertikal macht, es sei denn, man verwendetvsplit
Dwight Spencer
3

Das ist ein bisschen wie ein Hack, aber wie ich es mache, ist das:

  1. Setzen Sie den Cursor in das Fenster, in das ich die Datei öffnen möchte
  2. Hit <leader>n<leader>n(dies schließt NERDtree und öffnet es dann wieder mit dem Cursor in NERDtree)
  3. Wählen Sie die Datei aus

Auf meinem System wird es im letzten Fenster geöffnet, in dem ich gerade war, wenn die Datei noch nicht auf meinem Bildschirm geöffnet ist. Beginnen Sie in dem Fenster, in dem Sie Ihre Datei öffnen möchten

Beginnen Sie in dem Fenster, in dem Sie Ihre Datei öffnen möchten.

Nach <code> <leader> n <leader> n </ code> sind Sie wieder in NERDTree

Hit <leader>n<leader>nzu schließen und wieder öffnen NERDTree

Wählen Sie die Datei aus, die Sie öffnen möchten!

Wählen Sie die gewünschte Datei!

Ein schneller C-w =bringt Ihre Fenster wieder in die richtigen Proportionen.

Ben Kushigian
quelle
tolle Lösung. durch <leader>nSie bedeuten <C-n>?
Hafenkranich
3

Ich bin mir nicht sicher, ob noch jemand damit zu kämpfen hat, aber so habe ich damit umgegangen.

Sie können verwenden

:ls 

um die verfügbaren Puffer aufzulisten. Welches würde ungefähr so ​​aussehen:

1 "foo.txt"
2 "blame_the_user.java"

:b1 um foo.txt auszuwählen

:b2 für tad_the_user.java

Diese Methode kann von jedem Fenster aus mit :spoder durchgeführt werden :vs.

Öffnen Sie zuerst die Puffer, die Sie teilen möchten.

S-Adler
quelle