Mover la línea de modo y el minibúfer a la parte superior

12

¿Hay alguna forma de mover la línea de modo y el minibúfer desde la parte inferior a la parte superior de la pantalla?

El minibúfer está cubierto por la pregunta anterior ¿ Cómo mostrar el contenido del minibúfer en el medio del marco de emacs? , por lo que esta pregunta es principalmente sobre la línea de modo.

Acabo de dejar caer mi computadora portátil y agrietar la pantalla, así que no puedo ver mucho en la fila inferior.

Mongus Pong
fuente
Por "barra de estado", ¿te refieres a la línea de modo o al minibúfer?
Malabarba
@Malabarba Lo siento, no estoy 100% arriba en la terminología de emacs. Me refiero a los dos. No puedo ver mucho en la parte inferior de la pantalla.
Mongus Pong

Respuestas:

18

El contenido de la mode-linese almacena en la variable mode-line-format. EmacsTambién admite una línea de encabezado cuyo contenido es dirigido por la variable header-line-format.

En principio puedes usar

(setq header-line-format mode-line-format)
(setq-default mode-line-format nil)

para que el formato del header-linesea ​​igual al de su línea de modo actual y elimine el mode-line.

Editar: si desea utilizar esta configuración, coloque permanentemente

(setq-default header-line-format mode-line-format)

en su archivo de inicio (gracias a nispio por esa sugerencia).

Como también desea minibufferque aparezca en la parte superior, volveré a vincular la respuesta de @ Malabarba a la pregunta ¿Cómo mostrar el contenido del minibúfer en el medio del marco de emacs? que se puede adaptar para mostrar el minibúfer en la parte superior. Además, considere la respuesta @phils a la pregunta ¿Es posible mover el minibúfer emacs a la parte superior de la pantalla? en la etiqueta "viejo" emacs en stackoverflow.

Hasta donde sé, no hay forma de colocar directamente el minibúfer en la parte superior. El único enfoque (que también se usa en las respuestas anteriores) es usar un segundo marco.

elemakil
fuente
44
Si está agregando esto a su archivo init, querrá usarlo en setq-defaultlugar de setq.
nispio
¿Puedo preguntar por la razón del voto negativo?
elemakil
@elemakil La respuesta fue incorrecta sin setq-default. Ahora esta bien. :-)
Malabarba
(aunque técnicamente ahora está incompleto con respecto a los nuevos detalles proporcionados por el usuario)
Malabarba
@Malabarba ya veo. ¡Gracias por aclarar eso! :-)
elemakil
4

Su verdadera pregunta es cómo hacer que Emacs evite la parte defectuosa de su pantalla; La línea de modo y el minibúfer son solo lo que tiende a terminar ilegible.

En lugar de moverlos y dejar algo más (como texto) en la parte de la pantalla ilegible, la solución más limpia y general es reducir y mover el marco de Emacs (es decir, lo que generalmente se llama una ventana) para que esté completamente contenido en la buena región del pantalla.

Como es habitual con Emacs, existen herramientas específicas para eso. La biblioteca Maxframe ( inicio de Github ) está diseñada para llenar automáticamente toda la pantalla con el marco de Emacs, lo contrario de lo que necesita, pero expone una mf-set-frame-pixel-sizefunción útil , que se puede llamar desde el archivo init junto con la set-frame-positionfunción estándar para colocar su encuadre en la posición correcta automáticamente cuando abra Emacs.

Lorenzo Gatti
fuente
1
Apoyo tu punto. Pero no es necesario hackear un paquete. Ver default-frame-alist .
Malabarba
@Malabarba En una nota no relacionada, sobre doc.endlessparentheses.com , ¿por qué solo la segunda barra diagonal se convierte en código ASCII? Ejemplo: me aparece http://doc.endlessparentheses.com/Var%2F2C-window-width.htmlcuando hago clic 2C-window-width aquí .
Kaushal Modi
@kaushalmodi es solo un pequeño error en cómo se genera el índice. Puede usar barras regulares en los enlaces y funcionarán bien. Lo arreglé localmente, pero la regeneración del índice lleva horas, así que lo pospongo hasta emacs 25. :-)
Malabarba
1
@Malabarba: mf-set-frame-pixel-size es útil porque la forma estándar de establecer la altura y el ancho del marco es por caracteres, no por píxeles, lo que no es muy práctico en este escenario. default-frame-alist y sus parientes también miden en caracteres.
Lorenzo Gatti