如何为emacsclient提供命令行选项?

时间:2011-12-02 23:07:00

标签: emacs

我使用:

启动emacsclient
emacsclient -a "" -c

这将打开一个连接到emacs守护程序的框架,并启动守护程序(如果尚未启动)。太棒了,这很好用。

但是,我喜欢打开最大化的emacs框架。使用emacs,我会使用-mm。但是,这不适用于emacsclient。我如何使这项工作?

(似乎我可以通过添加如下所示的shell文件来创建一些工作:emacsclient -a "myshell.sh" -c,其中shell文件是:emacs -mm,但我无法完成这项工作 - 服务器不会熬夜。)

3 个答案:

答案 0 :(得分:16)

您可以将以下行添加到.emacs,以便可以在窗口最大化的情况下启动Emacs。有关详细信息,请参阅http://www.gnu.org/software/emacs/manual/html_node/elisp/Size-Parameters.html#Size-Parameters

(add-to-list 'default-frame-alist '(fullscreen . maximized))

Emacs客户端接受-F选项,您可以在其中指定帧参数,因此上面的示例将是:

emacsclient -c -a "" -F "((fullscreen . maximized))"

答案 1 :(得分:3)

假设您想要全屏运行emacsclient,这就是我的情况。

man emacsclient显示emacsclient有-F选项:

-F, --frame-parameters=ALIST
       set the parameters of a newly-created frame.

在Emacs手册中,这是一个信息文件,第(emacs) emacsclient Options部分提供了更多信息。具体针对此问题(elisp) Size Parameters提及fullscreen参数。要全屏运行emacsclient,您需要提供一个alist,其中一个元素为(fullscreen . fullboth),如下所示:

emacsclient -c -F "((fullscreen . fullboth))"

答案 2 :(得分:2)

emacsclient提供--eval(简称-e)命令行选项,用于执行任意Emacs Lisp代码,因此您可以访问文件并从命令行调用suspend-frame,如下所示:

emacsclient -a "" -c --eval "(progn (find-file \"/tmp/my-file\") (suspend-frame))"

您可以将其放在脚本中,例如:

#!/bin/bash
emacsclient -a "" -c --eval "(progn (find-file \"$1\") (suspend-frame))"