gpt4 book ai didi

emacs - 为什么 Emacs(作为守护进程)比打开的帧多 1 个?

转载 作者:行者123 更新时间:2023-12-04 18:42:57 24 4
gpt4 key购买 nike

如果 Emacs 以“--daemon”启动,则 (frame-list)仅打开 1 帧时返回 2 帧

(frame-list)
(#<frame *Minibuf-1* - Emacs 24.3.50.1 0x11c7270> #<frame F1 0xb94ac8>)

如果您在没有守护进程标志的情况下启动 Emacs - 那里将没有“F1”缓冲区。

如何可靠地确定用户打开了哪些帧?有没有具体的属性?

最佳答案

这是一个“物理上不可见”的框架(尽管 frame-visible-p 另有说明)与守护进程启动的初始终端相关联。我怀疑它存在的唯一原因是 emacs 还没有准备好在没有框架的情况下运行,而且很难修复它。

为了过滤掉它,我会使用这个测试:

(string-equal "initial_terminal" (terminal-name <frame>)) 
;;; => t for the "pseudo-"frame created by emacs -daemon

可能有更好的测试,但据我所知,这个已经足够可靠了: terminal-name返回类似 "/dev/tty" 的内容对于 tty 帧和 X11 显示名称,如 ":0"对于 X11 帧(我不记得它在其他平台上返回了什么,比如在 Windows 控制台窗口中,但我相信它不可能是 "initial_terminal" 偶然的)。

关于emacs - 为什么 Emacs(作为守护进程)比打开的帧多 1 个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21151992/

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