Snel overschakelen van verticale splitsing naar horizontale splitsing in Vim

Hoe kun je in Vim je huidige vensters omschakelen van horizontale splitsing naar verticale splitsing en vice versa?

Ik heb dat zojuist per ongeluk gedaan, maar ik kan de sleutel niet meer vinden.


Antwoord 1, autoriteit 100%

Vim-mailinglijstzegt (opnieuw geformatteerd voor betere leesbaarheid):

Om tweeverticaal gesplitst te wijzigen
vensters om horizontaal te splitsen

CtrlwtCtrlwK< /kbd>

Horizontaal naar verticaal:

Ctrl-wtCtrl-wH< /kbd>

Uitleg:

Ctrl-wtmaakt het eerste (linksboven) venster actueel

Ctrl-wKverplaatst het huidige venster naar de volledige breedte helemaal bovenaan

Ctrl-wHverplaatst het huidige venster helemaal naar de volledige hoogte

Merk op dat de t een kleine letter is en de K en H een hoofdletter.

Bovendien, met slechts twee vensters, lijkt het alsof je het gedeelte Ctrl-wtkunt laten vallen, want als je al in een van de slechts twee vensters, wat heeft het voor zin om het actueel te maken?


Antwoord 2, autoriteit 39%

Ctrl-wgevolgd door H, J, Kof < kbd>L(hoofdletter) verplaatst het huidige venster naar uiterst left, bottom, topof rightrespectievelijk als normale cursornavigatie.

De equivalenten in kleine letters verplaatsen de focus in plaats van het venster te verplaatsen.


Antwoord 3, autoriteit 5%

Als je twee of meervensters horizontaal of verticaal hebt geopend en ze allemaalin de andere richting wilt zetten, kun je het volgende gebruiken:

(schakel over naar horizontaal)

:windo wincmd K

(schakel over naar verticaal)

:windo wincmd H

Het gaat in feite naar elk afzonderlijk venster en gebruikt ^WKof ^WH.


Antwoord 4, autoriteit 3%

De volgende ex-commando's zullen een willekeurig aantal vensters (opnieuw) splitsen:

  • Als u verticaal wilt splitsen (bijv. verticale scheidingslijnen tussen vensters maken), typt u :vertical ball
  • Als u horizontaal wilt splitsen, typt u :ball

Als er verborgen buffers zijn, zal het geven van deze commando's ook de verborgen buffers zichtbaar maken.


Antwoord 5, autoriteit 3%

Kijk in VIM naar het volgende om verschillende alternatieven te zien voor wat je zou kunnen hebben gedaan:

:help openingsvenster

Bijvoorbeeld:

Ctrl-Ws
Ctrl-Wo
Ctrl-Wv
Ctrl-Wo
Ctrl-Ws
...


Antwoord 6, autoriteit 2%

Horizontale naar verticale splitsing

Ctrl+Wvoor vensteropdracht,

gevolgd door Shift+Hof Shift+L


Verticaal naar horizontaal gesplitst

Ctrl+Wvoor vensteropdracht,

gevolgd door Shift+Kof Shift+J

Beide oplossingen zijn van toepassing als er maar twee vensters zijn.

Na het geven van het venstercommando Ctrl+W, verplaatst men in feite het venster in de richting aangegeven door Shift+richtingsletter.


Help standaard openen in een verticale splitsing

Voeg beide regels toe aan .vimrc:

cabbrev help vert help
cabbrev h vert h

cabbrevstaat voor opdrachtafkorting.

:vert[ical] {cmd}voert de cmdaltijd uit in een verticaal gesplitst venster.


Antwoord 7

Geïnspireerd door het antwoord van Steve, schreef ik een eenvoudige functie die schakelt tussen verticale en horizontale splitsingen voor alle vensters op het huidige tabblad. Je kunt het aan mapping binden zoals in de laatste regel hieronder.

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>

Antwoord 8

Na de tip van Mark Rushakoff hierboven, hier is mijn mapping:

" vertical to horizontal ( | -> -- )
noremap <c-w>-  <c-w>t<c-w>K
" horizontal to vertical ( -- -> | )
noremap <c-w>\|  <c-w>t<c-w>H
noremap <c-w>\  <c-w>t<c-w>H
noremap <c-w>/  <c-w>t<c-w>H

Bewerken:gebruik Ctrl-wrom twee vensters om te wisselen als ze niet in de goede volgorde staan .

Other episodes