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 splitsenCtrl–wtCtrl–wK< /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
, top
of right
respectievelijk 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
cabbrev
staat voor opdrachtafkorting.
:vert[ical] {cmd}
voert de cmd
altijd 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 .