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

Yoo*_*Yoo 5 emacs elisp emacsclient org-mode

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

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

(org-remember)
Run Code Online (Sandbox Code Playgroud)

我试过

emacsclient -c & emacsclient -eval '(org-remember)'
Run Code Online (Sandbox Code Playgroud)

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

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

emacsclient -eval '(org-remember)'
Run Code Online (Sandbox Code Playgroud)

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

seh*_*seh 3

我的emacsclient版本不支持该-c参数,尽管文档对此进行了宣传

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

emacsclient -e '(select-frame (make-frame))' '(org-remember)'
Run Code Online (Sandbox Code Playgroud)

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