2

Я использую emacs в течение многих лет, но я относительно новичок в настройке lisp (помимо добавления строк из других скриптов / инструкций по установке emacs / инструкций по установке пакетов). Я запрограммировал схему раньше, так что я немного знаком, но это было также давно.

Как мне сопоставить ключ с более чем одной операцией? Я приспосабливаю форму кода шрифта размера шрифта цикла:http://www.emacswiki.org/emacs/CycleFontSizes

за исключением того, что я хотел бы максимизировать окно (я использую Mac OSX) после изменения размера шрифта.

Я могу максимизировать окно, используя maxframe:

(require 'maxframe)
(add-hook 'window-setup-hook 'maximize-frame t)

Как мне добавить это к привязкам клавиш размера шрифта. Я хотел бы сделать что-то вроде:

(define-key global-map (read-kbd-macro "C-0")   
  (lambda()
    'font-zoom-reset-font-size
    (add-hook 'window-setup-hook 'maximize-frame t))
)

Это не правильно, потому что define-key ожидает другого типа. Это, наверное, довольно тривиально, увидев пример ...

1 ответ1

3

Обновить

Вы очень близки - просто нужно определить вашу функцию как интерактивную, включив одну строку (interactive) и сделать так, чтобы вызов font-zoom-reset-font-size фактически вызывал функцию, а не просто ссылку на функцию :

(define-key global-map (read-kbd-macro "C-0")   
  (lambda()
    (interactive)
    (font-zoom-reset-font-size)
    (add-hook 'window-setup-hook 'maximize-frame t))
)

Оригинальный (и до сих пор действующий) ответ

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

(defun zoom-font-and-max()
  (interactive)
  (font-zoom-reset-font-size)
  (add-hook 'window-setup-hook 'maximize-frame t))


(global-set-key (kbd "C-0") 'zoom-font-and-max)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .