我的.emacs
文件中有以下代码。它应该将输入焦点移动到任何新创建的帧。
(defun foo-focus-new-frame (frame)
(select-frame-set-input-focus (frame)))
(add-hook 'after-make-frame-functions 'foo-focus-new-frame t)
当我直接从命令行运行emacs时,这很好用。但是,如果没有启动emacs,我会尝试运行以下命令:
emacsclient -c -a '' test.txt
我收到以下错误:
*ERROR*: Symbol's function definition is void: frame
这是为什么?根据{{3}} after-make-frame-functions
挂钩应该只在新创建一个帧后运行,那么为什么我的函数找不到呢?
答案 0 :(得分:3)
frame
函数不存在,也许您打算访问参数而不是调用函数,即foo-focus-new-frame
中有无关的括号:
(defun foo-focus-new-frame (frame)
(select-frame-set-input-focus frame))