No emacs, com mais freqüência do que eu gostaria, eu termino com 4 janelas ou mais.
Vou usar esse exemplo:
+--------|-----------+
| | |
| 1 | 2 |
| | |
+--------+-----------+
| 3 | 4 |
| +-----------+
| | 5 |
+--------+-----------+
Muitas funções podem executar ações other-window
(geralmente a mesma janela apontada por C-x o
). Especialmente úteis são scroll-other-window
. No entanto, quando 4 ou mais janelas são abertas, other window
é improvável que seja a que eu quero.
Existe uma maneira fácil de gerenciar o conjunto other-window
sem alterar o layout da janela / buffer? Claro, é possível usar um monte de C-x 4 b
e, C-b
mas não quero alterar o layout. Por exemplo:
- se estiver editando na janela 4 da figura acima, existe uma maneira fácil de configurar
C-M-v
para rolar a janela 1 ? - Ou simplesmente, suponha que o foco esteja na janela 3 , como definir
other-window
para apontar para a janela 2 ?
M-1 M-2 ..
para selecionar a janela número 1, 2, utilizando owindow-number
pacoteA partir de uma rápida revisão da fonte
other-window
, parece que ela realmente depende da janela retornada pornext-window
, definida em c. Infelizmente,scroll-other-window
também é definido em c e presumivelmente chama a janela seguinte a partir daí. Não acho fácil substituir isso.No entanto,
switch-to-buffer-other-window
parece usarpop-to-buffer
, então você pode ter alguma sorte lá.fonte
Não há uma maneira fácil de manipular a lista de janelas; portanto, o resultado retornado por
other-window
é mais ou menos fixo. Isso não é algo ruim por si só, pois permite consistência ao navegar pelas janelas. Em relação aos dois cenários que você descreveu, com algumas elisp ou macros, você pode se adequar ao seu fluxo de trabalho.Você pode usar um snippet simples como o abaixo para usar
other-window
o número apropriado de vezes, role para baixo e volte para a janela original.Você pode passar um argumento de prefixo para especificar qual janela rolar. Como você pode inferir, ele usa o mecanismo incorporado
other-window
para pular oarg
número de janelas antes de rolar. Osave-selected-window
foco garante retornará à janela original. A documentação deother-window
pode fornecer mais informações sobre como modificar esse snippet para se adequar ao seu comportamento.Novamente, use a
prefix-arg
comoC-3 C-x o
quando estiver chamandoother-window
. O número real a ser fornecido variará dependendo da ordem em que você os dividir e não será alterado desde que você não crie novas janelas. Como alternativa, você pode usar pacotes de conveniência, comowindow-number
ouace-window
do MELPA, para alternar rapidamente as janelas selecionadas.fonte
<f7> n
para rolar a enésima janela. Crie ligações temporárias de uma tecla com macros do teclado.