¿Cómo cambiar el tamaño de las ventanas de emacs de pantalla dividida?

12

Si tengo Emacs dividido horizontalmente y en la parte superior estoy editando el código elisp y en la parte inferior estoy en el shell. Por defecto, Emacs hace que las dos ventanas tengan el mismo tamaño, pero me gustaría que el búfer de shell sea más pequeño. Me preguntaba cómo podría hacer eso.

Pregunta original de Steve sobre SO: ¿Cómo cambiar el tamaño de las ventanas de emacs de pantalla dividida?

Luke Shimkus
fuente
44
¿Estamos duplicando intencionalmente preguntas de SO? stackoverflow.com/questions/4987760/…
phils
@phils, no, no lo estaba. Pero haré un enlace a la publicación. Gracias por la visión de usted.
Luke Shimkus el
más allá de eso, ese fue un poco demasiado fácil :)
Nsukami _
1
Gee, genial editar @ King. Ahora esta pregunta se ha vuelto realmente diferente de la que
copiaste
2
me hace pensar que las preguntas relacionadas con emacs sobre SO deberían migrarse.
Habría

Respuestas:

18

C-x-( shrink-window-if-larger-than-buffer) para reducir una ventana para que se ajuste a su contenido.

C-x+( balance-windows) para hacer que las ventanas tengan las mismas alturas y anchos.

C-x^( enlarge-window) para aumentar la altura en 1 línea, o el prefijo arg valor. Un argumento negativo encoge la ventana. Ejemplo:C-u - 3 C-x ^

C-x{( shrink-window-horizontally)

C-x}( enlarge-window-horizontally)

Nsukami _
fuente
+1 para el comando de reducción. Estaba buscando la manera de encogerme por una sola línea. ¿Qué es C-u?
Vass
3
@Vass C-ucomienza un argumento numérico para el siguiente comando. Si desea aumentar 5 veces, en lugar de escribir, 5 veces, el mismo comando, escribaC-u 5 C-x ^
Nsukami _
1
También vale la pena señalar que C-uel valor predeterminado es 4, lo que significa que C-u C-x ^hará lo mismo que C-u 4 C-x ^.
ramnes
7

También recomendaría consultar el windresizepaquete de ELPA o el windsizepaquete de MELPA .

Con windresize, puede hacer M-x windresizey luego usar las teclas de flecha para mover fácilmente los bordes de la ventana, presionando ENTER cuando haya terminado.

Lee H
fuente
3

Puede usar C-x^( enlarge-window) en la ventana superior para agrandarla (y así reducir la ventana inferior).

Con el mouse, también puede arrastrar la línea de modo de la ventana superior para cambiar su tamaño.

François Févotte
fuente
¡Es una gran idea hacer que otra ventana sea más pequeña ampliando la de arriba!
Vass
0

También tenga en cuenta que, al igual que en un sistema de ventanas, puede usar el mouse con xterm-mouse-mode para arrastrar el divisor de ventanas.

Tenga en cuenta que esto a veces parece depender un poco del programa xterm o xterm real, e iirc en Emacsen anterior no era confiable más allá de la columna 100 a menos que jugara un poco con la variable de entorno TERM, pero en mi Emacs 24.2 .1 funciona bien con emacs -nw -q (es decir, ignora por completo mis .emacs y habilita manualmente el modo xterm-mouse con M-x xterm-mouse-mode)

Actualización: FYI para completar, señalaré que esto también funciona para divisores verticales (es decir, cuando se ha dividido C-x 3)

Mark Aufflick
fuente
0

Alguna vez he escrito un modo menor simple (para mi uso personal) de forma interactiva resize-frame. Creo que esto debería ser conveniente.

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

M-x resize-framepara habilitar el resize-framemodo menor:

  1. Presione arrow keyspara ajustar el tamaño horizontal / verticalmente.
  2. Presione cualquier otra tecla para deshabilitar.
kuanyui
fuente