2011-05-20 12 views

Respuesta

187

Si los tiene divididos verticalmente CwJ mover uno a la parte inferior

si los tiene dividida horizontal CwL para mover uno a la derecha

Para girar en una "columna" o "fila" de ventanas divididas, CwCr

Los siguientes comandos se pueden usar para cambiar el diseño de la ventana. Por ejemplo, cuando hay dos ventanas divididas verticalmente, CTRL-W K cambiará eso en ventanas divididas horizontalmente. CTRL-W H lo hace al revés.

+8

Finalmente estoy empezando a "sentir". Increíble cuánto tiempo he sobrevivido sin estos comandos. –

+11

Para rotar ventanas divididas, creo que solo necesita "C-w r", no "C-w C-r". –

+2

@TomLord Eso también funciona. Aunque eso no necesita "menos". Es simplemente diferente. Y creo que "Cw r" es un poco incómodo (especialmente si se repite) – sehe

8

CTRL - WSHIFT - H girará la orientación, CTRL - WH se mueve a la ventana de la izquierda, CTRL - WL se mueve a la derecha. Ver

 
:help split 

y

 
:help ^w 

para más información.

+0

Ese es para cambiar buffers. ¿Cómo cambiar la dirección de las ventanas? –

+1

@Arnis^wH cambiará la orientación del diseño de la ventana.^wh que se mueve a la ventana de la izquierda. Las operaciones son sensibles a mayúsculas y minúsculas –

+0

lo descubrió. Gracias. –

70

Ctrl-wH o escriba :wincmd H para pasar de horizontal a vertical diseño.

Ctrl-wJ o escriba :wincmd J para pasar de vertical a horizontal diseño.

Ctrl-wr o escriba :wincmd r a intercambio las dos buffers pero mantener el diseño de la ventana de la misma.

Ctrl-ww o escriba :wincmd w a movimiento del cursor entre las dos ventanas/buffers.

Es posible que desee vincular una o más de estas secuencias para que sea más rápido escribir. Pongo esto en mi .vimrc modo que ,l mueve el cursor a la siguiente memoria intermedia en la pestaña actual:

let mapleader = "," 
nmap <Leader>l <C-w>w 
+0

exactamente lo que estaba buscando, ¡gracias! – Masha

+0

Perfecto ... Esto debería haber sido aceptado :-) – cholewa1992

+1

@Nick Los dos primeros realmente responden la pregunta y los segundos dos van más allá, ¡lo cual es increíblemente útil! La función de "intercambio" es particularmente útil para mí cuando traduzco documentos, porque prefiero tener lenguajes de origen siempre en un lado específico y no siempre los abro en ese orden :) –

6

Las respuestas actuales de todo un gran trabajo si sólo tiene dos ventanas abiertas. Si tiene más que eso, la lógica para mover ventanas puede ponerse peluda.

Tengo esto en mi .vimrc para permitirme 'tirar' y 'borrar' un búfer y luego pegarlo en una ventana sobre el búfer en uso o como una división [v].

fu! PasteWindow(direction) "{{{ 
    if exists("g:yanked_buffer") 
     if a:direction == 'edit' 
      let temp_buffer = bufnr('%') 
     endif 

     exec a:direction . " +buffer" . g:yanked_buffer 

     if a:direction == 'edit' 
      let g:yanked_buffer = temp_buffer 
     endif 
    endif 
endf "}}} 

"yank/paste buffers 
:nmap <silent> <leader>wy :let g:yanked_buffer=bufnr('%')<cr> 
:nmap <silent> <leader>wd :let g:yanked_buffer=bufnr('%')<cr>:q<cr> 
:nmap <silent> <leader>wp :call PasteWindow('edit')<cr> 
:nmap <silent> <leader>ws :call PasteWindow('split')<cr> 
:nmap <silent> <leader>wv :call PasteWindow('vsplit')<cr> 
:nmap <silent> <leader>wt :call PasteWindow('tabnew')<cr> 
+0

no estoy seguro de cómo funciona su función - quizás agregue un simple ejemplo visual – serup

+0

Esto es brillante. Mucho mejor que 'C-W J' y amigos. Lo extendería con ' wP' a' top split' y ' wV' a': set nosplitright \ | llame a PasteWindow ('vsplit') \ | establecer splitright '. Y ' wr' tiene más sentido ('replace') que' we'. – cormacrelf