如何在启动新的emacsclient框架后运行某些elisp代码?

时间:2009-12-30 15:35:37

标签: emacs elisp org-mode emacsclient

For how to automatically evaluate certain lisp code every time starting an emacsclient, click here.

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

(org-remember)

我试过

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

但有时它只是打开一个没有聚焦的新框架,然后运行elisp代码,有时,它会打开一个新框架聚焦但在旧框架中运行elisp代码。

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

emacsclient -eval '(org-remember)'

但这并没有把重点放在旧框架上。

2 个答案:

答案 0 :(得分:4)

我的 emacsclient 版本不支持-c参数,尽管the documentation advertising it

我不确定是否有更简洁的方法可以执行此操作,但您可以尝试使用make-frameselect-frame,如下所示:

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

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

答案 1 :(得分:3)

如何将您已尝试过的两个命令行合并为一个:

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

适用于Emacs 23.1。