So ändern Sie zwei vertikal geteilte Fenster in horizontal geteilte
Ctrl- wtCtrl-wK
Horizontal bis vertikal:
Ctrl- wtCtrl-wH
Erklärungen:
Ctrl- wt macht das erste (oben links) Fenster aktuell
Ctrl- wK verschiebt das aktuelle Fenster ganz oben auf volle Breite
Ctrl- wH verschiebt das aktuelle Fenster ganz links auf volle Höhe
Beachten Sie, dass t in Kleinbuchstaben und K und H in Großbuchstaben geschrieben sind.
Mit nur zwei Fenstern scheint es auch so, als könnten Sie den Ctrl- wtTeil löschen, denn wenn Sie sich bereits in einem von nur zwei Fenstern befinden, was bringt es, ihn aktuell zu machen?
Wenn Sie also zwei Fenster horizontal geteilt haben und sich im unteren Fenster befinden, verwenden Sie einfach ^ WL.
zu viel PHP
7
.... Die Kraft ... Mein Vim-Fu hat sich heute verdoppelt, danke. Es gibt eine Menge interessanter ^ w-Befehle (b, w usw.)
Alex Hart
Wäre schön, wenn das mit dem NERDTree Plugin funktioniert :-)
Eno
3
@Eno Funktioniert gut für mich. Schalten Sie Ihr NERDTree-Bedienfeld einfach zu, bevor Sie die Teilungen drehen, und schalten Sie es dann wieder auf. : NERDTreeToggle (Ich habe es der Einfachheit halber einer Funktionstaste zugeordnet).
Lambart
2
Ich habe meiner vim-Konfiguration einige Leader-Mappings hinzugefügt: :nmap <leader>th <C-w>t<C-w>Hund:nmap <leader>tk <C-w>t<C-w>K
Ian Marcinkowski
324
Ctrl- wgefolgt von H, J, Koder L(Kapital) wird das aktuelle Fenster in die weit bewegen left, bottom, topoder rightjeweils wie normalen Cursor - Navigation.
Die Kleinbuchstabenäquivalente verschieben den Fokus, anstatt das Fenster zu verschieben.
Es ist viel besser, da Benutzer hjkl verwenden, um zwischen Puffern zu wechseln.
Afshin Mehrabani
30
Die akzeptierte Antwort ist gut, aber für mich ist diese Antwort leichter zu merken. Vielen Dank!
Jon Carter
Funktioniert auch besser mit Nerdtree.
Arcseldon
Es funktioniert für mich unter macOS mit dem Präfix Ctrl- w(ich weiß nicht, ob es in Ihrem Beispiel ^Mittel gibt Ctrl).
Giovanni Benussi
@GiovanniBenussi ja, ich denke ^bedeutet Ctrl.
ma11hew28
47
Wenn Sie zwei oder mehr Fenster horizontal oder vertikal geöffnet haben und alle in die andere Ausrichtung wechseln möchten , können Sie Folgendes verwenden:
(auf horizontal wechseln)
:windo wincmd K
(auf vertikal umschalten)
:windo wincmd H
Es geht effektiv zu jedem Fenster einzeln und mit ^WKoder ^WH.
Inspiriert von der Antwort von Steve habe ich eine einfache Funktion geschrieben, die für alle Fenster in der aktuellen Registerkarte zwischen vertikalen und horizontalen Teilungen umschaltet. Sie können es wie in der letzten Zeile unten an das Mapping binden.
function! ToggleWindowHorizontalVerticalSplit()
if !exists('t:splitType')
let t:splitType = 'vertical'
endif
if t:splitType == 'vertical' " is vertical switch to horizontal
windo wincmd K
let t:splitType = 'horizontal'
else " is horizontal switch to vertical
windo wincmd H
let t:splitType = 'vertical'
endif
endfunction
nnoremap <silent> <leader>wt :call ToggleWindowHorizontalVerticalSplit()<cr>
Funktioniert noch besser für mich, wenn ich es zwinge, in der gleichen Spaltung zu bleiben if winnr() == 1 windo wincmd J windo wincmd k else windo wincmd J endif und if winnr() == 1 windo wincmd L windo wincmd h else windo wincmd L endifhoffe, dass das Sinn macht.
mjhoffmann
5
Nach Mark Rushakoffs Tipp oben ist hier mein Mapping:
Antworten:
In der Vim-Mailingliste heißt es (zur besseren Lesbarkeit neu formatiert):
Beachten Sie, dass t in Kleinbuchstaben und K und H in Großbuchstaben geschrieben sind.
Mit nur zwei Fenstern scheint es auch so, als könnten Sie den Ctrl- w tTeil löschen, denn wenn Sie sich bereits in einem von nur zwei Fenstern befinden, was bringt es, ihn aktuell zu machen?
quelle
:nmap <leader>th <C-w>t<C-w>H
und:nmap <leader>tk <C-w>t<C-w>K
Ctrl- wgefolgt von H, J, Koder L(Kapital) wird das aktuelle Fenster in die weit bewegen
left
,bottom
,top
oderright
jeweils wie normalen Cursor - Navigation.Die Kleinbuchstabenäquivalente verschieben den Fokus, anstatt das Fenster zu verschieben.
quelle
Ctrl
-w
(ich weiß nicht, ob es in Ihrem Beispiel^
Mittel gibtCtrl
).^
bedeutetCtrl
.Wenn Sie zwei oder mehr Fenster horizontal oder vertikal geöffnet haben und alle in die andere Ausrichtung wechseln möchten , können Sie Folgendes verwenden:
(auf horizontal wechseln)
(auf vertikal umschalten)
Es geht effektiv zu jedem Fenster einzeln und mit ^WKoder ^WH.
quelle
Die folgenden ex-Befehle teilen eine beliebige Anzahl von Fenstern (neu):
:vertical ball
:ball
Wenn versteckte Puffer vorhanden sind, werden durch Ausgeben dieser Befehle auch die versteckten Puffer sichtbar.
quelle
:vert[ical] ball
im doc:vert ball
ist das also auch ok und kürzer.:ball
Reduziert 3 vertikale Fenster auf 2 horizontale Fenster, während:vert ball
3 horizontale Fenster 3 vertikalen Fenstern korrekt zugeordnet werden.Sehen Sie sich in VIM Folgendes an, um verschiedene Alternativen für das zu sehen, was Sie möglicherweise getan haben:
: Hilfe beim Öffnen des Fensters
Zum Beispiel:
Ctrl- W s
Ctrl- W o
Ctrl- W v
Ctrl- W o
Ctrl- W s
...
quelle
Beide Lösungen gelten, wenn nur zwei Fenster vorhanden sind.
Öffnen Sie die Hilfe standardmäßig in vertikaler Aufteilung
Fügen Sie diese beiden Zeilen hinzu zu
.vimrc
::vert[ical] {cmd}
führt das immercmd
in einem vertikal geteilten Fenster aus.quelle
Inspiriert von der Antwort von Steve habe ich eine einfache Funktion geschrieben, die für alle Fenster in der aktuellen Registerkarte zwischen vertikalen und horizontalen Teilungen umschaltet. Sie können es wie in der letzten Zeile unten an das Mapping binden.
quelle
if winnr() == 1 windo wincmd J windo wincmd k else windo wincmd J endif
undif winnr() == 1 windo wincmd L windo wincmd h else windo wincmd L endif
hoffe, dass das Sinn macht.Nach Mark Rushakoffs Tipp oben ist hier mein Mapping:
Bearbeiten: Verwenden Sie Ctrl- w r, um zwei Fenster auszutauschen, wenn sie nicht in der richtigen Reihenfolge sind.
quelle