texto - vim tutorial




Cómo voltear ventanas en vim? (3)

Las respuestas actuales funcionan muy bien si solo 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 buffer y luego pegarlo en una ventana sobre el buffer actual 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>

Posible duplicado:
Para pasar de la división vertical a la división horizontal rápida en Vim

Si tengo 2 ventanas divididas horizontalmente, ¿cómo rotarlas para obtener 2 ventanas divididas verticalmente?

¿Y cómo cambiar los buffers?


Si los tiene divididos verticalmente Cw J para mover uno al fondo

Si los tiene divididos horizontalmente Cw L para mover uno a la derecha

Para rotar en una 'columna' o 'fila' de ventanas divididas, Cw Cr

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.


Ctrl-w H o escriba :wincmd H para pasar del diseño horizontal al vertical .

Ctrl-w J o escriba :wincmd J para pasar del diseño vertical al horizontal .

Ctrl- :wincmd r o tipo :wincmd r para intercambiar los dos búferes pero mantener el diseño de la ventana igual.

Ctrl-w w escriba :wincmd w para mover el cursor entre las dos ventanas / búferes.

Es posible que desee vincular una o más de estas secuencias para que sea más rápido escribir. Puse esto en mi .vimrc para que , l mueva el cursor al siguiente buffer en la pestaña actual:

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




vim