使用emacsclient而不是emacs - 翻译参数

时间:2013-04-15 09:41:51

标签: emacs gnus

我现在正在使用一个单独的枪支实例,我从以下开始:

emacs --name Mail --title Mail --no-desktop --no-splash --funcall gnus

由于gnus响应速度很快,并且我所有其他emacs的东西都是从不同的emacs实例中作为emacsclient运行的,我想尝试从emacsclient运行gnus。但我正在努力翻译我使用的通用线路选项。我必须设置windos名称和标题,因为我使用了很棒的Windows管理器,窗口应该根据窗口名称进行分类。另外,我想自动启动gnus。

那么如何翻译上面的命令呢,gnus是以emacsclient的形式启动的,windows名称和标题设置为Mail?

emacsclient ...???

2 个答案:

答案 0 :(得分:3)

您还可以使用设置框架alist的-F参数,并将其与-e参数组合以执行您喜欢的操作,因此无需定义任何功能。然后调用如下所示:

emacsclient -F '((name . "Mail"))' -e '(gnus)'

有关参数的信息,请参阅(info "(elisp)Frame parameters")

答案 1 :(得分:1)

我不确定您是否只能使用命令行开关来执行此操作。但是,可以定义一个elisp函数来设置gnus框架,并从emacsclient调用此函数。

尝试将其放入emacs初始化文件中:

(defun my/create-gnus-frame ()
  "Create a new frame running `gnus'."
  (select-frame
   (make-frame '((name . "Mail"))))
  (gnus))

并从命令行运行这样的gnus:

emacsclient -e '(my/create-gnus-frame)'

新创建的框架的X属性(使用xprop获得)似乎是正确的:

WM_CLASS(STRING) = "Mail", "Emacs"
WM_ICON_NAME(STRING) = "Mail"
WM_NAME(STRING) = "Mail"