gpt4 book ai didi

emacs - 如何检测 emacs 是否处于终端模式?

转载 作者:行者123 更新时间:2023-12-03 05:14:13 25 4
gpt4 key购买 nike

在我的 .emacs 文件中,我的命令仅在图形模式下有意义(例如 (set-frame-size (selected-frame) 166 100)) 。如何仅在图形模式而不是终端模式下运行它们(即 emacs -nw)。

谢谢!

最佳答案

window-system 变量告诉 Lisp 程序 Emacs 运行在哪个窗口系统下。可能的值为

x
Emacs 正在使用 X 显示框架。
w32
Emacs 正在使用 native MS-Windows GUI 显示框架。
ns
Emacs 使用 Nextstep 界面(在 GNUstep 和 Mac OS X 上使用)显示框架。
电脑
Emacs 正在使用 MS-DOS 直接屏幕写入来显示框架。
Emacs 正在基于字符的终端上显示框架。

来自the doc .

编辑:似乎 window-system 已被弃用,取而代之的是 display-graphic-p (来源:emacs 23.3.1 上的 C-h f window-system RET) .

(display-graphic-p &optional DISPLAY)

Return non-nil if DISPLAY is a graphic display.
Graphical displays are those which are capable of displaying several
frames and several different fonts at once. This is true for displays
that use a window system such as X, and false for text-only terminals.
DISPLAY can be a display name, a frame, or nil (meaning the selected
frame's display).

所以你想做的是:

(if (display-graphic-p)
(progn
;; if graphic
(your)
(code))
;; else (optional)
(your)
(code))

如果您没有 else 子句,您可以:

;; more readable :)
(when (display-graphic-p)
(your)
(code))

关于emacs - 如何检测 emacs 是否处于终端模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com