Quando trabalho com o VIM, sempre tenho várias janelas visíveis. Às vezes eu gostaria de ter uma maneira fácil, trocar essas janelas em alguns lugares. Existe algum plug-in, macro etc. para tornar isso mais fácil? BTW, eu uso o MiniBufExplorer.
123
Respostas:
Existem alguns comandos úteis incorporados que oferecem uma certa quantidade de controle, mas não são abrangentes. Os principais são:
Ctrl- W, r(ou seja CTRL, segure , pressione W, solte CTRL, pressione r) - que gira as janelas (a primeira janela se torna a segunda, a segunda se torna a terceira, etc.)
Ctrl- W, x- troque a janela atual pela próxima
Ctrl- W, Shift- H- mova esta janela para a extrema esquerda
Ctrl- W, Shift- K- move esta janela para o topo
(e da mesma forma para Ctrl- W, Shift- Je Ctrl- W, Shift- L). Vejo:
Para maiores informações.
fonte
Eu escrevi e tenho usado o seguinte trecho de código no meu vimrc para copiar e colar minhas janelas do Vim.
Isso define, por exemplo, os seguintes atalhos:
<c-w>y
: "Puxa a janela", ou seja, armazena o número do buffer na janela atual em uma variável global.<c-w>pp
: "Coloca a janela no lugar da janela atual", ou seja, lê o número do buffer armazenado anteriormente e abre esse buffer na janela atual. Ele também armazena o número do buffer que costumava estar na janela atual.Se, "trocando essas janelas em alguns lugares", significa "abrir o buffer na janela A na janela B e vice-versa, sem alterar a posição das janelas", você pode usar a seguinte seqüência de teclado para trocar as janelas:
<c-w>y
(puxando o número do buffer)<c-w>pp
(colando o buffer)<c-w>pp
(colando o buffer novamente)Funciona apenas no Vim> = 7.0.
fonte
Fiz uma pergunta semelhante na mesma época: queria uma maneira de trocar janelas especificamente, sem alterar um layout arbitrariamente complicado. Acabei fazendo um plugin vim de uma das soluções sugeridas. Chama-se WindowSwap.vim ; instale-o com seu gerenciador de plugins vim preferido e experimente.
Com WindowSwap.vim, você simplesmente
<Leader>yw
puxar uma janela.<Leader>pw
para colar essa janela, trocando-a pela posição da primeira.As combinações de teclas são naturalmente configuráveis para suas preferências.
fonte
Como
<c-w>r
ou<c-w>x
tem uma restrição que você não pode girar ou trocar janelas Quando as divisões de janela vertical e horizontal são misturadas. E<c-w>H
pode fazer com que o layout da janela mude além da sua expectativa, especialmente quando você tem muitas janelas.Portanto, você pode fazer algum trabalho para satisfazer suas necessidades específicas de troca de janela / buffer. Aqui está um exemplo para alternar a janela atual com a janela superior esquerda (normalmente eu a maximizo verticalmente):
fonte
Na minha opinião, http://vimcasts.org/episodes/working-with-windows/ tem a resposta perfeita para esta pergunta. Em resumo:
ctrl-w w
ciclo entre as janelas abertasctrl-w h
focalize a janela para a esquerdactrl-w j
focar a janela para baixoctrl-w k
focar a janela para cimactrl-w l
focalize a janela para a direitactrl-w r
gire todas as janelasctrl-w x
trocar janela atual com seu vizinhoctrl-w H
mover a janela atual para a extrema esquerdactrl-w J
mover a janela atual para baixoctrl-w K
mover a janela atual para o topoctrl-w L
mover a janela atual para a extrema direitafonte