Подтвердить что ты не робот

Как переключить полноэкранный режим с помощью Emacs по умолчанию?

Я использую mac emacs из http://emacsformacosx.com/, и мне нужно щелкнуть значок максимизации, когда я запускаю emacs.

Как установить максимальное окно emacs по умолчанию?

4b9b3361

Ответ 1

Ryan McGeary maxframe.el отлично работает для меня как на Aquamacs, так и на Emacs.app. Я нашел его через EmacsWiki: http://www.emacswiki.org/emacs/FullScreen. Эта страница рассказывает о исправленной версии, которая теперь является 404 страницей, но оригинальная в https://github.com/rmm5t/maxframe.el, кажется, работает нормально.

Ответ 2

запустить emacs, как это

emacs -mm

Ответ 3

Вот функция, написанная и используемая мной. Когда вы успешно нажимаете F11, emacs переключается в 4 режимах:

(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)

Ответ 4

Короткий ответ заключается в том, чтобы добавить к вашему 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))))
 ...
 )

Ниже приводится то, что я хотел в качестве решения одной и той же проблемы. TL;. ДР

Я сталкиваюсь с той же проблемой, но во всех приложениях, а не только в Emacs. С этой целью я связал глобальный ключ cmd-m на моем Mac с параметром меню Zoom, который обычно является опцией меню для кнопки green maximize. Однако Emacs не предоставляет параметр меню "Масштаб", который обычно находится под пунктом меню "Окно". Поэтому я закончил со следующим.

Я только что закодировал следующее вчера вечером.

;; 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)

Эта комбинация клавиш в последней строке кода хорошо сочетается с моей привязкой ключей к глобальному соединению Mac cmd + m, которую я описал изначально. Вы можете настроить его на все, что вам подходит. Я привык нажимать cmd-m при запуске большинства приложений, пока он не подходит к экрану, и Emacs - один из них для меня. Поэтому я не беспокоюсь о настройке initial-frame-alist.

Я продолжал заполнять набор функций, я хотел, добавив следующий код сегодня вечером.

;; 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)

Несколько примечаний: -

  • Если вы просто учитесь использовать pcase из этого кода, будьте осторожны, чтобы не сделать ту же ошибку, что и я, неверно прочитав обратную кавычку в качестве цитаты в документах.
  • fullscreen является псевдонимом fullboth и не является неправильным, как последний, как термин для того, что он означает, и поэтому я не только обрабатывал этот случай как значение для (frame-parameter nil 'fullscreen), но и использовал его всякий раз, когда я хотите set-frame-parameter до fullboth

НТН

Ответ 5

Ответ на fooobar.com/info/125689/... работает для меня (с GNU Emacs v24.2.1). Чтобы повторить, определите следующую функцию в файле .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)))

Для удобства вы можете привязать команду к ключу. Я использую ключ C-z, который в противном случае сводит к минимуму фрейм, который мне не нужен, но всегда нахожу раздражающим, когда я случайно его ударяю:

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

Как я заметил в комментарии, я добавил к этому ответу, используя эту команду, многократно циклически перемещается между нормальным состоянием кадра и максимизированным состоянием, но одно небольшое раздражение: между этими двумя есть странное состояние, в котором кадр почти не совсем вертикально. Но это небольшая проблема.