【问题标题】:How can I tell in elisp if Emacs is using X?我如何在 elisp 中判断 Emacs 是否使用 X?
【发布时间】:2009-05-28 20:22:54
【问题描述】:

如果我运行 emacs -nw,我的 .emacs 中有一些我不想运行的项目。如果是这种情况,我如何在 elisp 中判断?

(已将 -nox 更改为 -nw --- 我的大脑在哪里?)

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    您上面的答案是正确的,尽管如果您想区分其他窗口系统并且只想在您实际使用 X 时运行代码,您必须去

    (if (eq window-system 'X) (foo))
    

    【讨论】:

    • 虽然我不需要那种特异性,但这比我的答案更好。谢谢!
    • 当我试图弄清楚如何在仅窗口模式下禁用主题时,我最终选择了 JasonFruit 的初始答案,但他们确实在做同样的事情。 (if (eq window-system 'X) (foo))(if window-system (foo))(when window-system (foo)) 并没有什么不同。对于那些对细节感兴趣的人,让我告诉你“C-h a”是你的朋友。使用它我搜索“变量”并找到“描述变量”并使用它加上选项卡完成我找到了窗口系统变量。然后我只是在暂存缓冲区中输入了window-system,然后对其进行了测试
    • 如果您只关心窗口系统是否为 X,它们的工作方式相同,但窗口系统的值可以是 'X 以外的值。
    【解决方案2】:

    我想我找到了自己的答案:

    (when window-system
        (foo))
    

    只有当我在 X 中运行时才会 foo。

    【讨论】:

    • 请不要再为我的问题投票了——我上面接受的答案基本相同,但更完整!
    • @JasonFruit 可能是人们在寻找更通用的窗口系统检测解决方案。但是,根据文档:“不推荐使用此变量 [window-system] 作为布尔值。而是使用 display-graphic-p 或任何其他 display-*-p 谓词来报告框架的特定 UI 相关功能。”
    【解决方案3】:

    请注意,这个问题有点构思不当:Emacs 可以同时使用 tty 框架和 GUI 框架运行。

    window-system 变量是“终端本地”,这意味着它的值将取决于当前选择的框架是 tty 框架还是 GUI 框架。

    【讨论】:

    • 我什至没有意识到可以做到这一点。令人着迷!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2017-08-23
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多