comandos - ¿Es posible mover el minibúfer emacs a la parte superior de la pantalla?
emacs ubuntu (3)
Estoy bastante seguro de que no puedes mover el minibúfer en sí, pero puedes hacer que la línea de modo esté en la parte superior:
(setq-default header-line-format mode-line-format) ; Copy mode-line
(setq-default mode-line-format nil) ; Remove mode-line
Esto anulará cosas como la información que usa la línea del encabezado, pero probablemente sea lo más cerca que puedas sin tener que hackear la fuente de C.
Empecé a codificar en un monitor de 30 pulgadas y me pregunto si es posible mover el minibúfer a la parte superior de la pantalla en emacs. Las búsquedas de google no están apareciendo nada.
Saludos Nimai Etheridge
Utilice un marco de minibúfer independiente. Esto muestra cómo:
http://www.emacswiki.org/emacs/Dedicated_Minibuffer_Frame
http://www.emacswiki.org/emacs/oneonone.el
Mire el código para obtener una idea o simplemente úselo directamente. Solo necesita personalizar la configuración de la posición del marco del minibúfer:
1on1-minibuffer-frame-left
- Posición del borde izquierdo del marco del minibuffer, en píxeles.1on1-minibuffer-frame-top/bottom
- Posición de la parte superior (o inferior) del marco del minibuffer, en píxeles.
Eche un vistazo a la documentación de los default-minibuffer-frame
por default-minibuffer-frame
y initial-frame-alist
. Parece que puedes tener un marco separado para tu minibúfer (que puedes colocar en la parte superior de la pantalla) y luego generar marcos sin minibúfer que lo utilicen.
Tenga en cuenta que en initial-frame-alist
indica que "Si el valor requiere un frame sin minibúfer, y no ha creado un minibuffer frame por su cuenta, se creará un frame minibuffer de acuerdo con minibuffer-frame-alist
", que Suena como exactamente lo que se necesitaría.
Hay formas de guardar y restaurar las configuraciones de marcos, por lo que si esto funcionara, probablemente podría volver a crear el diseño automáticamente cuando se inicie Emacs.
Editar:
Ejemplo muy básico / prueba de concepto a continuación para usar esta disposición de cuadros. El marco del minibúfer no se puede eliminar hasta que se hayan eliminado los marcos que lo utilizan. Se encontrará con problemas cuando haga cosas como maximizar el marco del editor, por supuesto, por lo que ciertamente habrá trabajo que hacer para intentar que este sistema funcione de una manera más fluida.
(setq default-minibuffer-frame
(make-frame
''((name . "minibuffer")
(width . 80)
(height . 1)
(minibuffer . only)
(top . 0)
(left . 0)
)))
(setq new-frame
(make-frame
''((name . "editor")
(width . 80)
(height . 30)
(minibuffer . nil)
(top . 50)
(left . 0)
)))
Naturalmente, también puede combinar esto con el método de scottfrazer de mover la modeline a la parte superior.
Esto podría ser manejado en la window-setup-hook
?
También debe mirar las bibliotecas frame.el y dframe.el integradas. Las funciones como dframe-reposition-frame
pueden proporcionar una manera conveniente de mantener el marco del minibúfer ''unido'' a la parte superior del marco de edición activo.
La variable minibuffer-auto-raise
también puede configurarse para elevar el marco del minibúfer siempre que se active el minibúfer, lo que puede mitigar la necesidad de tenerlo visible el resto del tiempo.