Digamos que la siguiente es la estructura actual de mi ventana:
+ ----- + ---------------------------- El | El | El | A | El | El | + ----- + El | El | El | B |
El orden de A y B no es del todo natural. Sería mejor si B estuviera arriba.
Sin embargo, si voy <C-w>K
, B será la parte superior de todas las ventanas, que no es lo que quiero. ¿Cómo puedo poner B sobre A, pero no sobre cualquier otra ventana que ya esté sobre A?
Y si dos ventanas están divididas verticalmente, ¿cómo puedo cambiarlas para dividirlas horizontalmente?
split
vim-windows
Jason Hu
fuente
fuente
Respuestas:
Para intercambiar las dos partes de una ventana dividida simplemente haga:
<C-w> <C-r>
fuente
:h CTRL-W_CTRL-R
:The second window becomes the first one, the third one becomes the second one, etc.
Por lo tanto, si tiene 3 divisiones, el cursor en la parte inferior y presione<c-w><c-r>
la tercera ventana estará encima de las otras 2, que no es lo que OP estaba pidiendo:How can I put B above A, but not above any other window that is already above A?
Para intercambiar
window
posiciones, el efecto es equivalente a intercambiar buffers que muestran esas dos ventanas.Por ejemplo, si la ventana A tiene el buffer 2 y la ventana B tiene el buffer 8, querrá ir a la Ventana A, seleccionar el buffer 8, luego a la Ventana B, seleccionar el buffer 2.
Esta idea me inspiró a escribirlo, y también está en mi propia caja de herramientas.
Código de función:
:call WinBufSwap()
Esto intercambia los búferes en las dos ventanas preseleccionadas, dejando el cursor en la ventana original.
La selección de las dos ventanas deseadas para intercambiar con anticipación es el detalle clave, ya que es necesario para especificar para Vim con cuáles trabajar.
fuente
(
index.txt
sección 2.2, "Comandos de la ventana")Si A es la ventana actual, la siguiente será B, por lo que solo necesita
<C-w> x
Si B es la ventana actual (y hay más ventanas a continuación), primero tendrá que ir a A, luego intercambiar:
<C-w> k <C-w> x
fuente
Otra alternativa para intercambiar ventanas o intercambiar los buffers es marcar posiciones (usando mayúsculas ) en sus archivos y abrir esas marcas en las ventanas que elija.
Por ejemplo, si tengo dos archivos, archivo_A y archivo_B :
mA
mB
'A
'B
.La ventaja de este método es si, por alguna razón, divide su panel más de una vez y no hay una lógica clara para intercambiarlos, como si desea intercambiar los paneles a las 12 en punto y a las 7 en punto, puede ' No solo gire las ventanas, pero puede cambiar fácilmente los búferes.
fuente
Puede intercambiar las memorias intermedias entre dos ventanas con la siguiente función:
Ahora, con mayor frecuencia, el intercambio de las memorias intermedias técnicamente actuará como el intercambio de ventanas. Como no realiza un seguimiento manual de las ventanas, realiza un seguimiento de qué ventana contiene qué búfer. Por lo tanto, la función anterior lo ayudará en la mayoría de las situaciones.
fuente