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)
但这并没有将注意力集中在旧框架上。
我的emacsclient版本不支持该-c参数,尽管文档对此进行了宣传。
我不确定是否有更干净的方法来执行此操作,但您可以尝试使用make-frameand select-frame,如下所示:
emacsclient -e '(select-frame (make-frame))' '(org-remember)'
Run Code Online (Sandbox Code Playgroud)
这将创建一个新框架,如果您的窗口管理器没有自动选择它,则授予它焦点,然后在该新框架具有焦点的情况下执行第二个命令。