vertical vim split

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.