5

有关如何在每次启动 emacsclient 时自动评估某些 lisp 代码,请单击此处。

我的问题不一样。我想编写一个脚本来打开一个新的 emacs 框架(重点放在它上面)(一种方法是运行emacsclient -c),然后在该框架中运行以下 elisp 代码。

(org-remember)

我试过

emacsclient -c & emacsclient -eval '(org-remember)'

但有时它只是打开一个不聚焦的新框架,然后运行 ​​elisp 代码,而其他时候,它打开一个聚焦的新框架,但在旧框架中运行 elisp 代码。

一些知道 org-remember 做什么的人可能会问我为什么不这样做:

emacsclient -eval '(org-remember)'

但这并没有将注意力集中在旧框架上。

4

2 回答 2

3

我的emacsclient版本不支持这个-c论点,尽管文档宣传它

我不确定是否有更清洁的方法可以做到这一点,但您可以尝试使用make-frameand select-frame,如下所示:

emacsclient -e '(select-frame (make-frame))' '(org-remember)'

这将创建一个新框架,如果您的窗口管理器没有自动选择它,请授予它焦点,然后使用具有焦点的新框架执行第二个命令。

于 2009-12-30T16:34:45.377 回答
2

将您已经尝试过的两个命令行组合成一个怎么样:

emacsclient -c -e '(org-remember)'

这适用于 Emacs 23.1。

于 2009-12-30T16:44:40.960 回答