Como alterar o tamanho das janelas emacs de tela dividida?

12

Se eu tiver o Emacs dividido horizontalmente e no topo, estou editando o código elisp e, no fundo, estou no shell. Por padrão, o Emacs torna as duas janelas iguais em tamanho, mas eu gostaria que o buffer do shell fosse menor. Eu queria saber como eu poderia fazer isso.

Pergunta original feita por Steve no SO: Como alterar o tamanho das janelas emacs de tela dividida?

Luke Shimkus
fonte
4
Estamos intencionalmente duplicando perguntas do SO? stackoverflow.com/questions/4987760/…
phils
@ phils, não, eu não estava. Mas vou fazer um link para o post. Obrigado pela compreensão.
Luke Shimkus
além disso, que um era um pouco fácil demais :)
Nsukami _
1
Nossa, ótima edição @King. Agora, esta questão tornou-se muito diferente do que você copiou ...
rsenna
2
isso me faz pensar que as questões relacionadas ao emacs sobre SO devem ser migradas. Ele vai ter evitado a (pequena) alvoroço
Nsukami _

Respostas:

18

C-x-( shrink-window-if-larger-than-buffer) para reduzir uma janela para caber em seu conteúdo.

C-x+( balance-windows) para tornar as janelas com as mesmas alturas e larguras.

C-x^( enlarge-window) para aumentar a altura em 1 linha ou o valor do prefixo arg. Um argumento negativo encolhe a janela. Exemplo:C-u - 3 C-x ^

C-x{( shrink-window-horizontally)

C-x}( enlarge-window-horizontally)

Nsukami _
fonte
+1 para o comando de redução. Eu estava procurando a maneira de encolher por uma única linha. O que é C-u?
Vass
3
@Vass C-uinicia um argumento numérico para o seguinte comando. Se você quiser aumentar 5 vezes, em vez de digitar, 5 vezes, o mesmo comando, digiteC-u 5 C-x ^
Nsukami _
1
Também é importante notar que C-uo valor padrão é 4, o que significa que C-u C-x ^fará o mesmo que C-u 4 C-x ^.
Ramnes
7

Eu também recomendaria verificar o windresizepacote da ELPA ou o windsizepacote da MELPA .

Com windresize, você pode fazer M-x windresizee usar as teclas de seta para mover as bordas da janela facilmente, pressionando ENTER quando terminar.

Lee H
fonte
3

Você pode usar C-x^( enlarge-window) na janela superior para aumentá-la (e, assim, diminuir a janela inferior).

Usando o mouse, você também pode arrastar a modelagem da janela superior para redimensioná-la.

François Févotte
fonte
ótima idéia para diminuir outra janela ampliando a janela acima!
Vass
0

Observe também que, como em um sistema de janelas, você pode usar o mouse com o modo xterm-mouse para arrastar o divisor de janelas.

Observe que isso às vezes depende um pouco do programa real xterm ou similar ao xterm, e o iirc no Emacsen mais antigo não era um passado confiável sobre a 100ª coluna, a menos que você jogasse um pouco com a variável de ambiente TERM, mas no meu Emacs 24.2 .1 funciona bem com o emacs -nw -q (ou seja, ignorando totalmente o meu .emacs e ativando manualmente o modo xterm-mouse-mode M-x xterm-mouse-mode)

Atualização: Para sua informação completa, aponto que também funciona para divisores verticais (ou seja, quando você se separou C-x 3)

Mark Aufflick
fonte
0

Eu já escrevi um modo menor simples (para meu uso pessoal) de forma interativa resize-frame. Eu acho que isso deveria ser conveniente.

https://gist.github.com/kuanyui/65a408d393871048771c

M-x resize-framepara ativar o resize-framemodo secundário:

  1. Pressione arrow keyspara ajustar o tamanho horizontal / verticalmente.
  2. Pressione qualquer outra tecla para desativar.
kuanyui
fonte