8 ответов:
список рассылки Vim говорит (переформатирован для лучшей читабельности):
изменить два вертикальное разделение окна для горизонтального разделения
Ctrl - wtCtrl - wK
горизонтально вертикально:
Ctrl - wt Ctrl - wH
объяснениями:
Ctrl - wt делает первое окно (topleft) текущим Ctrl - wK перемещает текущее окно на полную ширину в самом верху Ctrl - wH перемещает текущее окно в полный рост на расстоянии слева
обратите внимание, что t-нижний регистр, а K и H-верхний.
кроме того, только с двумя окнами, похоже, вы можете отказаться от Ctrl - wt часть потому что если вы уже находитесь в одном из двух окон, какой смысл делать его текущим?
^wза ним следует capitalH,J,KилиLпереместит текущее окно в дальнееleft,bottom,topилиrightсоответственно, как обычная навигация курсора.эквиваленты нижнего регистра перемещают фокус вместо перемещения окна.
Если у вас есть два или окна открываются горизонтально или вертикально и хотите переключить их все другой ориентации, вы можете использовать следующее:
(переключиться в горизонтальное положение)
:windo wincmd K(переключиться в вертикальное положение)
:windo wincmd Hэто эффективно собирается в каждом окне по отдельности и с помощью ^WK или ^WH.
следующие команды ex будут (повторно)разбивать любое количество окон:
- чтобы разделить по вертикали (например, сделать вертикальные разделители между окнами), введите
:vertical ball- чтобы разделить по горизонтали, введите
:ballЕсли есть скрытые буферы, выполнение этих команд также сделает скрытые буферы видимыми.
в VIM, взгляните на следующее, чтобы увидеть различные альтернативы для того, что вы могли бы сделать:
: помогите открыть окно
например:
Ctrl - Ws
Ctrl - Wo
Ctrl - Wv
Ctrl - Wo
Ctrl - W s
...
следуя совету Марка Рушакова выше, вот мое отображение:
" 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>HEdit: использовать Ctrl - wr поменять два окна, если они не в порядке.
вдохновленный ответом Стива, я написал простую функцию, которая переключается между вертикальными и горизонтальными разделениями для всех окон на текущей вкладке. Вы можете привязать его к отображению, как в последней строке ниже.
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>
горизонтальное и вертикальное разделение
Ctrl+ W, следовал по Shift+H или Shift+L
вертикальное и горизонтальное разделение
Ctrl+ W, следовал по Shift+K или Shift+J
оба решения применяются, когда только существует два окна.
Comments