Emacs:在.emacs中检查无窗口系统

mef*_*fiX 11 emacs

有没有可能,检查是否Emacs是在运行--no-window-system(-nw)模式下点emacs的文件中(.emacs)?我想仅在emacs处于窗口模式(/或不是)时才启用/包含某些扩展.

亲切的问候,mefiX

phe*_*ver 20

该变量window-systemnil所选帧是否在纯文本终端上.

  • 注意`window-system`的值特定于当前帧; 如果你在GUI模式下启动Emacs,那么`window-system`将是`t`,但如果你从终端使用`emacsclient -t`连接到那个*相同的*Emacs实例,那么`window-system`将是`nil `在那个终端框架内.出于这个原因,基于`window-system`在`.emacs`中做出决定并不是一个好习惯 - 而是将相应的条件代码嵌入到钩子或稍后将调用的其他函数中. (12认同)
  • 我使用`(当窗口系统...东西...)`来评估我想要的所有东西只在窗口模式. (3认同)

Tim*_*m X 5

将 emacs 在窗口环境中执行时要运行的代码放在 when 块中,并使用 display-graphic-p 谓词即

(when (display-graphic-p)
  (do something)
  (do-another-thing))
Run Code Online (Sandbox Code Playgroud)

或反转

  • 根据手册,此答案代表最佳实践,请参阅 https://www.gnu.org/software/emacs/manual/html_node/elisp/Window-Systems.html 上的最后一句话 (2认同)