我已经使用 emacs 多年了,但我对自定义 lisp 还比较陌生(除了插入其他 emacs 脚本/软件包安装说明中的行)。我以前编写过 Scheme,所以我有点熟悉,但那也是很久以前的事了。
如何将一个键映射到多个操作?我正在调整循环字体大小 lisp 代码形式: 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
更新
您已经非常接近了——只需要通过包含一行将您的函数定义为交互式的(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)