Я использую mac emacs из http://emacsformacosx.com/, и мне нужно щелкнуть значок максимизации, когда я запускаю emacs.
Как установить максимальное окно emacs по умолчанию?
Я использую mac emacs из http://emacsformacosx.com/, и мне нужно щелкнуть значок максимизации, когда я запускаю emacs.
Как установить максимальное окно emacs по умолчанию?
Ryan McGeary maxframe.el
отлично работает для меня как на Aquamacs, так и на Emacs.app. Я нашел его через EmacsWiki: http://www.emacswiki.org/emacs/FullScreen. Эта страница рассказывает о исправленной версии, которая теперь является 404 страницей, но оригинальная в https://github.com/rmm5t/maxframe.el, кажется, работает нормально.
запустить emacs, как это
emacs -mm
Вот функция, написанная и используемая мной. Когда вы успешно нажимаете 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)
Короткий ответ заключается в том, чтобы добавить к вашему 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
НТН
Ответ на 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)
Как я заметил в комментарии, я добавил к этому ответу, используя эту команду, многократно циклически перемещается между нормальным состоянием кадра и максимизированным состоянием, но одно небольшое раздражение: между этими двумя есть странное состояние, в котором кадр почти не совсем вертикально. Но это небольшая проблема.