如果Emacs以“--damon”启动,那么(frame-list)
仅在打开1时返回2帧
(frame-list)
(#<frame *Minibuf-1* - Emacs 24.3.50.1 0x11c7270> #<frame F1 0xb94ac8>)
如果启动没有守护程序标志的Emacs - 那里不会有“F1”缓冲区。
如何可靠地确定用户打开了哪些帧?有没有具体的属性?
答案 0 :(得分:6)
这是一个“物理上不可见”的框架(尽管frame-visible-p
另有说明)与启动守护程序的初始终端相关联。我怀疑它存在的唯一原因是emacs还没有准备好在没有帧的情况下运行,并且很难修复它。
为了过滤掉我会使用这个测试:
(string-equal "initial_terminal" (terminal-name <frame>))
;;; => t for the "pseudo-"frame created by emacs -daemon
可能有更好的测试,但据我所知,这个测试足够可靠:terminal-name
为tty帧返回类似"/dev/tty"
的内容,为X11返回类似":0"
的X11显示名称框架(我无法想起它在其他平台上返回的内容,例如在Windows控制台窗口中,但我认为它不会"initial_terminal"
意外)。