Double Possible:
Pour passer de la verticale de split à split horizontal rapide dans VimSi j'ai 2 horizontalement split windows, comment faire pour les faire pivoter pour obtenir 2 à la verticale de séparer les fenêtres?
Et comment mettre des tampons?
Réponses
Trop de publicités?Si vous en avez divisé verticalement C-wJ pour déplacer l'un vers le bas
Si vous en avez divisé horizontalement C-wL pour déplacer vers la droite
Pour faire pivoter une 'colonne' ou 'ligne' de split windows, C-wC-r
Les commandes suivantes peuvent être utilisées pour modifier la fenêtre de mise en page. Par exemple, lorsqu'il y a deux verticalement split windows, CTRL-W K va changer que dans partagé horizontalement windows. CTRL-W H t-il dans l'autre sens.
Ctrl-w H ou de type :wincmd H
pour passer de la verticale à l'horizontale de mise en page.
Ctrl-w J ou tapez :wincmd J
pour passer de la verticale à l'horizontale de mise en page.
Ctrl-w r ou de type :wincmd r
à inverser les deux tampons , mais de garder la fenêtre de mise en page de la même.
Ctrl-w w ou le type :wincmd w
pour déplacer le curseur entre les deux fenêtres/tampons.
Vous pouvez lier un ou plusieurs de ces séquences pour le rendre plus rapide à taper. J'ai mis cela dans mon .vimrc, de sorte que ,l se déplace le curseur à la prochaine tampon dans l'onglet en cours:
let mapleader = ","
nmap <Leader>l <C-w>w
L'actuel répond à tous de l'excellent travail si vous avez seulement deux fenêtres ouvertes. Si vous avez plus de cela, la logique de déplacement des fenêtres peut s'arracher les cheveux.
J'ai ceci dans mon .vimrc pour me permettre de 'copier' et 'supprimer' un tampon, puis les coller dans une fenêtre au-dessus du tampon courant ou [v]split.
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>