Vim: ¿Mover ventana hacia la izquierda / derecha?


215

En Vim, ¿es posible "mover" una ventana hacia la izquierda o hacia la derecha? Por ejemplo, ¿similar a <c-w> ro <c-w> x, pero izquierda / derecha en lugar de arriba / abajo?

Por ejemplo, si tengo este diseño:

+---+---+---+
|   |   +---+
| A +---+---+
|   |   |   |
+---+---+---+

Me gustaría convertirlo en esto:

+---+---+---+
|   |   +---+
+---+ A +---+
|   |   |   |
+---+---+---+

Lo cual es difícil / molesto de hacer <c-w> {H,J,K,L}.

Respuestas:


425

Ctrl w le brinda el "modo de comando de Windows", permitiendo los siguientes modificadores:

  • Ctrl w+ R- Para rotar ventanas hacia arriba / izquierda.

  • Ctrl w+ r- Para rotar ventanas hacia abajo / derecha.

También puede usar el "modo de comando de Windows" con las teclas de navegación para cambiar la posición de una ventana:

  • Ctrl w+ L- Mueve la ventana actual a la "extrema derecha"

  • Ctrl w+ H- Mueve la ventana actual al "extremo izquierdo"

  • Ctrl w+ J- Mueve la ventana actual al "fondo"

  • Ctrl w+ K- Mueve la ventana actual a la "parte superior"

Echa un vistazo :help window-movingpara más información


2
<c-w> rsolo gira verticalmente.
David Wolever

10
@David Wolever, debe usar las letras mayúsculas en este caso, algo como: Ctrl-W + Shift-L, por ejemplo. Creo que esto puede ser lo que estás buscando.
Ricardo Valeriano

@David: acabo de probar esto y <cw> r funcionó horizontalmente para mí.
ostler.c

3
@ ostler.c crea una división vertical, luego crea una división horizontal dentro de una de las columnas. Ahora use <cw> r y solo cambia las dos ventanas dentro de una división vertical.
Chev

1
@ nn0p no, mueven las ventanas. <cw> h moverá el cursor a la siguiente ventana a la izquierda, mientras que <cw> H moverá la ventana actual (junto con el cursor) al extremo izquierdo.
MarSoft

58

Esta es la más útil para mí (y es probablemente la respuesta correcta a la pregunta):

  • Ctrl W+ xO Ctrl W+ Ctrl x- Rota la ventana enfocada actual con la ventana más cercana a la derecha.

muy útil cuando estás en medio de los paneles y quieres intercambiar con el de la derecha. Gracias por este!
Daniel Andrei Mincă

8

¿Desea mover la ventana o solo la posición del cursor?

Al lado de la rotación o el ciclismo, como ya lo ha dicho, sólo es posible mover la propia ventana a la muy superior, inferior, izquierda o derecha, respectivamente, con:

^W K
^W J
^W H
^W L

No creo que haya una forma predeterminada de mover una ventana un lugar a la derecha.


1
Quiero mover las ventanas, no el cursor.
David Wolever

1
Entonces esto es lo más lejos que puede llegar con los comandos de la ventana vim, si esto fue útil para usted,
márquelo

2
Si pudiera, rechazaría el comentario de @Bitterzoet. Ver las respuestas anteriores
Nathan

1

Realmente parece que vim no puede hacer esto con los mapas de claves estándar. La documentación dice que los comandos ^ WK, J, H y L funcionan creando la división y abriendo el búfer en la posición actual, por lo que escribí una función a la misma: Ocultar el búfer, mover a la izquierda, dividir y luego abra el búfer original:

" Rotate a window horizontally to the left
function! RotateLeft()
    let l:curbuf = bufnr('%')
    hide
    wincmd h
    split
    exe 'buf' l:curbuf
endfunc

" Rotate a window horizontally to the right
function! RotateRight()
    let l:curbuf = bufnr('%')
    hide
    wincmd l
    split
    exe 'buf' l:curbuf
endfunc

-6
  • ctrl + h mover el cursor a la siguiente ventana (derecha)

  • ctrl + l mover el cursor a la ventana anterior (izquierda)

Para obtener más información, consulte: :help window-moving


3
Incorrecto. Ctrl+h/lno son enlaces estándar para la navegación de ventanas (aunque, por supuesto, pueden configurarse y algunos complementos los ofrecen). Y esto no responde la pregunta original de todos modos.
MarSoft
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.