仅在GUI模式下运行某些Emacs init命令

时间:2010-07-20 14:43:09

标签: emacs

是否有办法在我处于GUI模式而非终端模式时运行某些命令(来自init.el)。我想在运行GUI版本时设置一个颜色方案,但是这个方案搞砸了终端窗口的颜色非常糟糕。我正在寻找一些看起来像这样的变量/函数:

(if gui-mode (color-scheme-blah))

或:

(unless terminal-mode (color-scheme-blah))

3 个答案:

答案 0 :(得分:19)

你想要像

这样的东西
(if window-system (color-scheme-blah))

window-system可以是'x'mswindows,甚至可能是其他值,但当您在终端上时,它始终为nil

答案 1 :(得分:4)

要通常测试图形显示,您要使用以下内容:

(display-graphic-p &optional DISPLAY)

如果DISPLAY是图形显示,则返回非零值。例如,使用window-system变量也可以,但需要您引用特定环境(例如X或Microsoft Windows)。

答案 2 :(得分:1)

使用emacsclient和框架时,GUI或终端模式不一定是全局概念。请参阅https://superuser.com/questions/165335/how-can-i-show-the-emacs-menu-in-gui-emacs-frames-but-not-in-tty-frames-when-usin上我的问题非常有用的答案。