2012-02-12 20 views
12

Estoy usando mac emacs desde http://emacsformacosx.com/, y necesito hacer clic en el ícono maximizado cuando inicio mi emacs.¿Cómo se activa la pantalla completa con Emacs?

¿Cómo puedo configurar la ventana maximizada de emacs como predeterminada?

+1

¿Ha intentado buscar en el Wiki Emacs, por ejemplo, http://www.emacswiki.org/emacs/FullScreen#toc18 y http://www.emacswiki.org/emacs/EmacsForMacOS#toc27? Pueden o no estar desactualizados, no tengo una Mac así que no puedo probar esto. –

+0

He tenido problemas considerables con la distribución de Emacs disponible en emacsforosx.com; hoy construí un nuevo Emacs de [esta versión que ha sido completamente parchada para OS X] (https://github.com/railwaycat/emacs-mac-port), y he encontrado resultados mucho mejores, incluido el soporte de OS X a pantalla completa. ¡Espero que esto ayude! –

+0

@Eric Fail - El problema con la adición de una etiqueta OSX es que esas personas no saben nada sobre Emacs y tienden a votar abajo y votar para cerrar porque son el público objetivo equivocado. – lawlist

Respuesta

8

Ryan McGeary's maxframe.el funciona bien para mí tanto en Aquamacs como en Emacs.app. Lo encontré a través de EmacsWiki: http://www.emacswiki.org/emacs/FullScreen. Esa página habla de una versión parchada que ahora es una página 404, pero la original en https://github.com/rmm5t/maxframe.el parece funcionar bien.

+0

¿De verdad obtiene ** la cobertura maximizada ** como lo hace para las ventanas que no son de emacs? Solo obtengo que la ventana se expanda hasta un múltiplo de anchos y alturas de caracteres completos de mi fuente monoespacial predeterminada. En mi sistema (Ubuntu/GNU Emacs 23.1.1), esto deja un borde ancho de aproximadamente medio carácter en el RHS y en la parte inferior. La única forma en que puedo expandir completamente la ventana es a través de la opción maximizar del menú del sistema del administrador de ventanas (en esquina superior izquierda) –

+0

PD: Encontré otra respuesta SO que tiene un método que funciona para mi sistema Linux X-Windows: [maximizar emacs en el arranque? (no la pantalla completa)] (http://stackoverflow.com/a/ 7763907/313821) .... ** ¡Cancela eso! **, no funciona ... maximiza demasiado la vertical ... * Pero *, los dos métodos juntos ** funcionan ** (extraño ... tal vez algún día voy a averiguar por qué? ... pero ahora funciona (después de un mes de molestándome! ... Gracias por la sugerencia de maxframe Jon O. –

+1

Puede obtener maxframe a través del gestor de paquetes de emacs y Melpa también. –

9

emacs empezar así

emacs -mm 
7

Aquí es una función escrita y utilizada por mí. Cuando succesivelly pulse F11, Emacs interruptores en 4 modos:

(defun switch-fullscreen nil 
    (interactive) 
    (let* ((modes '(nil fullboth fullwidth fullheight)) 
     (cm (cdr (assoc 'fullscreen (frame-parameters)))) 
     (next (cadr (member cm modes)))) 
    (modify-frame-parameters 
    (selected-frame) 
    (list (cons 'fullscreen next))))) 

(define-key global-map [f11] 'switch-fullscreen) 
+0

Esto funciona bien para mí, excepto por una molestia. Cuando llego al modo 'fullboth', el cuadro supera todo en la pantalla; es decir, la barra de título de la ventana de WM desaparece, y el panel de mi XFCE también desaparece detrás de la ventana (estoy usando Xubuntu). El modo 'fullheight' funciona correctamente: el cuadro solo usa el espacio vertical que el panel XFCE deja disponible para él.Me gustaría que el modo 'fullboth' funcione como si maximizara la ventana de WM presionando el botón' + 'en la barra de título. ¿Alguna idea de cómo se podría lograr eso? –

+0

esto es un error en gtk, no en emacs. por favor denúncialo a los desarrolladores de gtk. – alinsoar

+0

'fullboth' es un nombre inapropiado. Hace que Emacs vaya a pantalla completa en la jerga Mac normal. 'maximized' lo llena, ¡ambos! – trss

1

la respuesta dada en https://stackoverflow.com/a/1029065/351716 funciona para mí (con GNU Emacs v24.2.1). Para repetir, definir la siguiente función en el archivo de .emacs:

(defun x11-maximize-frame() 
    "Maximize the current frame (to full screen)" 
    (interactive) 
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0)) 
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0))) 

Para mayor comodidad, puede enlazar el comando a una tecla. Yo uso la tecla C-z, que de otro modo minimizar el marco, lo que no tengo necesidad de, pero siempre encuentra molesto cuando me golpeó accidentalmente:

(global-set-key (kbd "C-z") 'x11-maximize-frame) 

Como he señalado en el comentario añadí a esa respuesta, utilizando este comando alterna repetidamente entre el estado de trama normal y el estado maximizado, pero con una pequeña molestia: entre esos dos, hay un estado extraño donde el fotograma casi se maximiza verticalmente. Pero ese es un problema menor.

5

La respuesta corta es añadir lo siguiente a su custom-set-variables: -

(custom-set-variables 
;; custom-set-variables was added by Custom. 
;; If you edit it by hand, you could mess it up, so be careful. 
;; Your init file should contain only one such instance. 
;; If there is more than one, they won't work right. 
... 
'(initial-frame-alist (quote ((fullscreen . maximized)))) 
... 
) 

A continuación se realiza lo que yo quería como una solución para el mismo problema. TL; DR.

Tengo el mismo problema pero en todas las aplicaciones y no solo en Emacs. Con este fin, he vinculado globalmente la tecla de acceso directo cmd-m en mi Mac a la opción de menú Zoom, que suele ser la opción de menú para el botón verde maximizar. Sin embargo, Emacs no proporciona la opción del menú Zoom, que generalmente está debajo del elemento del menú Ventana. Así que terminé con lo siguiente.

Acabo de codificar la siguiente anoche.

;; This defines cmd-m to do the same as clicking the green titlebar button 
;; usually meant for the "Window -> Zoom" menu option in Mac apps 
(defun zoom() "zoom, same as clicking the green titlebar button in Mac app windows" 
    (interactive) 
    (set-frame-parameter 
    nil 'fullscreen 
    (pcase (frame-parameter nil 'fullscreen) 
    (`nil 'fullheight) 
    (`fullheight 'maximized) 
    (`fullboth (ding) 'fullboth) 
    (`fullscreen (ding) 'fullscreen) 
    (_ nil)))) 
(global-set-key (kbd "s-m") 'zoom) 

Esta combinación de teclas en la última línea del código va bien con la unión global para mi Mac cmd + m clave que he descrito al principio. Puedes personalizarlo a tu gusto. Estoy acostumbrado a presionar cmd-m en el lanzamiento de la mayoría de las aplicaciones hasta que se ajuste a la pantalla y Emacs es una de ellas para mí. Así que no me molesto con la configuración initial-frame-alist.

Completé el conjunto de características que quería agregando el siguiente código esta noche.

;; This defines ctrl-cmd-f to do the same as clicking the toggle-fullscreen titlebar 
;; icon usually meant for the "View -> Enter/Exit Full Screen" menu option in 
;; Mac apps 
(defun toggle-fullscreen() "toggle-fullscreen, same as clicking the 
corresponding titlebar icon in the right hand corner of Mac app windows" 
    (interactive) 
    (set-frame-parameter 
    nil 'fullscreen 
    (pcase (frame-parameter nil 'fullscreen) 
    (`fullboth nil) 
    (`fullscreen nil) 
    (_ 'fullscreen)))) 
(global-set-key (kbd "C-s-f") 'toggle-fullscreen) 
; For some weird reason C-s-f only means right cmd key! 
(global-set-key (kbd "<C-s-268632070>") 'toggle-fullscreen) 

Un par de notas: -

  1. Si acaba de aprender a usar pcase de este código, tenga cuidado de no cometer el mismo error como lo hice en errores de lectura de la comilla inversa como una cita en los documentos.
  2. fullscreen es un alias para fullboth y no es un nombre poco apropiado como el último es como un término para lo que significa y por lo tanto no sólo han manejado este caso como un valor para (frame-parameter nil 'fullscreen) pero el uso que cada vez que quiero set-frame-parameter a fullboth

HTH

Cuestiones relacionadas