1

我的.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

为什么是这样?根据文档after-make-frame-functions钩子只能在新创建框架后运行,那么为什么我的函数找不到它呢?

4

1 回答 1

3

frame函数不存在,也许您打算访问参数而不是调用函数,即您有多余的括号foo-focus-new-frame

(defun foo-focus-new-frame (frame)
  (select-frame-set-input-focus frame))
于 2015-01-14T10:06:48.527 回答