【问题标题】:get name of emacs application within emacs在 emacs 中获取 emacs 应用程序的名称
【发布时间】:2014-04-23 04:25:14
【问题描述】:

上下文

我复制了 Emacs.app 并将其重命名为 TerminalEmacs.app,这样我就可以通过键入“t”从 Alfred 访问(emacs)终端。这样,我将所有终端框架/窗口保存在一个 emacs 进程 (TerminalEmacs.app) 中,并将我的工作保存在另一个 (Emacs.app) 中。

问题

我想仅在从 TerminalEmacs.app 启动 emacs 进程时运行一些初始化,所以我想从 emacs 中检查 emacs 应用程序进程的名称。

【问题讨论】:

    标签: macos emacs


    【解决方案1】:

    您可以访问环境变量EMACSPATH,在Mac 上,它包含Emacs.app(或任何调用的应用程序)作为路径的一部分。我想你可以这样做:

    (if (string-match "TerminalEmacs\\.app" (getenv "EMACSPATH"))
       ...)
    

    【讨论】:

    • 这停止了工作(从 Mac 10.9.1 和/或 Emacs 24.3.1 开始,如果版本是问题的话)。 (getenv "EMACSPATH")nil。其他建议?
    • 事实上,如果相关的话,并没有设置其他一些特定于 emacs 的环境变量(如 PWD 或 EMACSDATA)。甚至在原始的“Emacs.app”中。
    • @samboosalis,显然,这个解决方案不再有效。但是,我刚刚发布了另一种实现此目的的方法。
    【解决方案2】:

    变量command-line-args 最初包含原始应用程序名称和所有参数。这些参数稍后会在处理时从列表中删除,但应用程序名称仍然是列表的一部分。

    你可以这样做:

    (if (string-match "TerminalEmacs\\.app" (car command-line-args))
        ...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-01
      • 1970-01-01
      • 2013-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-26
      相关资源
      最近更新 更多