Digamos o seguinte é a estrutura atual da minha janela:
+ ----- + ---------------------------- | | | A | | + ----- + | | | B
A ordem de A e B não é muito natural. Seria melhor se B estivesse no topo.
No entanto, se eu for <C-w>K
, B será o topo de todas as janelas, o que não é o que eu quero. Como posso colocar B acima de A, mas não acima de qualquer outra janela que já esteja acima de A?
E se duas janelas estiverem divididas verticalmente, como posso alterá-las para dividir horizontalmente?
split
vim-windows
Jason Hu
fonte
fonte
Respostas:
Para trocar as duas partes de uma janela dividida, basta:
<C-w> <C-r>
fonte
:h CTRL-W_CTRL-R
:The second window becomes the first one, the third one becomes the second one, etc.
Portanto, se você tiver três divisões, o cursor na parte inferior e<c-w><c-r>
a terceira janela estarão sobre as outras duas, que não é o que o OP estava pedindo:How can I put B above A, but not above any other window that is already above A?
Para trocar
window
posições, o efeito é equivalente à troca de buffers que essas duas janelas mostram.Por exemplo, se a janela A tiver o buffer 2 e a janela B o buffer 8, vá para a Janela A, selecione o buffer 8 e, em seguida, para a Janela B, selecione o buffer 2.
Essa ideia me inspirou a escrevê-la - e já está na minha própria caixa de ferramentas
Código da função:
:call WinBufSwap()
Isso troca os buffers nas duas janelas pré-selecionadas, deixando o cursor na janela original.
A seleção das duas janelas desejadas a serem trocadas antes do tempo é o detalhe principal, pois é necessário especificar para o Vim com quem trabalhar.
fonte
(
index.txt
seção 2.2, "Comandos da janela")Se A é a janela atual, a próxima será B, então você só precisa
<C-w> x
Se B for a janela atual (e houver mais janelas abaixo), primeiro você precisará ir para A e trocar:
<C-w> k <C-w> x
fonte
Outra alternativa para trocar janelas ou trocar os buffers é marcar posições (usando marcas maiúsculas ) em seus arquivos e abrir essas marcas nas janelas de sua escolha.
Por exemplo, se eu tiver dois arquivos, file_A e file_B :
mA
mB
'A
'B
.A vantagem desse método é que, por algum motivo, você divide seu painel mais de uma vez e não há lógica clara para trocá-los, como se você deseja trocar os painéis às 12 horas e às 7 horas, você pode ' apenas gire as janelas, mas você pode facilmente trocar os buffers.
fonte
Você pode trocar os buffers entre duas janelas com a seguinte função:
Agora, na maioria das vezes, a troca dos buffers funcionará tecnicamente como a troca de janelas. Como você não controla manualmente as janelas, controla qual janela está mantendo qual buffer. Portanto, a função acima o ajudará na maioria das situações.
fonte