vim-windows – ¿Es posible saber si una ventana está en la parte inferior o superior, izquierda o derecha?

Pregunta:

No sé si hay alguna función para verificar la posición de una ventana, quiero decir, ¿está actualmente en la parte inferior o superior, izquierda o derecha?

__________________________
|           |            |
|           |            |
|  left     |   right    |
|           |            |
|           |            |
|___________|____________|

__________________________
|                        |
|          top           |
|________________________|
|                        |
|         bottom         |
|_______________________ |

Respuesta:

Resumiendo los comentarios de la pregunta:

– Estoy tratando de escribir una función para rotar las divisiones de ventanas a vertical si el diseño actual es horizontal y viceversa cuando solo hay dos ventanas.

– ¿Por qué no usar simplemente ctrl-W_L? (o ctrl-W_R)

– Quiero que sea conveniente la función de alternar, detectará automáticamente el diseño actual y hará la rotación correcta por mí, en lugar de eso, necesito pensarlo en mi cerebro y elegir el comando correcto para usar. Todo lo que necesito hacer es presionar siempre la misma asignación de teclas.

Para los diseños que contienen solo dos ventanas, la siguiente función debería funcionar:

function! Rotate()
   " save the original position, jump to the first window
   let initial = winnr()
   exe 1 . "wincmd w"

   wincmd l
   if winnr() != 1
      " succeeded moving to the right window
      wincmd J " make it the bot window
   else
      " cannot move to the right, so we are at the top
      wincmd H " make it the left window
   endif

   " restore cursor to the initial window
   exe initial . "wincmd w"
endfunction

nnoremap <F3> :call Rotate()<CR>

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım