Para cambiar de división vertical a división horizontal rápida en Vim
split vim (8)
¿Cómo puede cambiar sus ventanas actuales de división horizontal a división vertical y viceversa en Vim?
Lo hice hace un momento por accidente, pero no puedo volver a encontrar la llave.
División horizontal a vertical
Ctrl + W , seguido de Mayús + H o Mayús + L
División vertical a horizontal
Ctrl + W , seguido de Shift + K o Shift + J
Ambas soluciones se aplican cuando solo existen dos ventanas.
Cuando tiene dos o más ventanas abiertas horizontal o verticalmente y desea cambiarlas a la otra orientación, puede usar lo siguiente:
(cambiar a horizontal)
:windo wincmd K
(cambiar a vertical)
:windo wincmd H
Se dirige efectivamente a cada ventana individualmente y usa ^ W K o ^ W H.
En VIM, eche un vistazo a lo siguiente para ver diferentes alternativas para lo que podría haber hecho:
: ayuda a abrir la ventana
Por ejemplo:
Ctrl - W s
Ctrl - W o
Ctrl - W v
Ctrl - W o
Ctrl - W s
...
Inspirado por la respuesta de Steve, escribí una función simple que alterna entre divisiones verticales y horizontales para todas las ventanas en la pestaña actual. Puede vincularlo a la asignación como en la última línea de abajo.
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>
Los siguientes comandos ex (re) dividirán cualquier número de ventanas:
- Para dividir verticalmente (por ejemplo, hacer divisiones verticales entre ventanas), escriba
:vertical ball
- Para dividir horizontalmente, escriba
:ball
Si hay buffers ocultos, emitir estos comandos también hará que los buffers ocultos estén visibles.
Siguiendo la sugerencia de Mark Rushakoff above , aquí está mi mapa:
" 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
Edición: use Ctrl - w r para intercambiar dos ventanas si no están en el orden correcto.
La lista de correo de Vim dice (reformateado para una mejor legibilidad):
Para cambiar dos ventanas divididas verticalmente para dividir horizontalmente
Ctrl - w t Ctrl - w K
Horizontalmente a verticalmente:
Ctrl - w t Ctrl - w H
Explicaciones:
Ctrl - w t hace que la primera ventana (topleft) sea actual Ctrl - w K mueve la ventana actual a todo lo ancho en la parte superior superior Ctrl - w H mueve la ventana actual a la altura máxima a la izquierda
Tenga en cuenta que la t es minúscula, y que K y H son mayúsculas.
Además, con solo dos ventanas, parece que puedes soltar la parte Ctrl - w t porque si ya estás en una de solo dos ventanas, ¿cuál es el punto de hacerla actual?
^w
seguido de las mayúsculas H
, J
, K
o L
moverá la ventana actual al extremo left
, bottom
, top
o right
respectivamente, como la navegación del cursor normal.
Los equivalentes en minúsculas mueven el foco en lugar de mover la ventana.