gpt4 book ai didi

emacsclient 字体检查不起作用

转载 作者:行者123 更新时间:2023-12-01 16:41:58 24 4
gpt4 key购买 nike

我正在尝试为 emacsclient 设置字体,如下所示:

(let ((default-font (cond
((member "Inconsolata" (font-family-list))
"Inconsolata 14")
(t
"monospace 20"))))
(set-default-font default-font)
(add-to-list 'default-frame-alist `(font . ,default-font)))

我在 cond sexp 处C-x C-e,它返回“Inconsolata 14”。我在 let sexp 处 C-x C-e 并更新了字体。

当我通过启动 emacs 时

$ emacs

它可以工作(字体设置为 Inconsolata 14)。

但是当我通过启动应用程序时

$ emacsclient --alternate-editor="" --create-frame "$@"

字体改为等宽 20。

请指教。

编辑:

我发现通过包含

(message "%s" (font-family-list))

在我的 .emacs 文件中,当 emacsclient 启动时,(font-family-list) 返回 nil

不幸的是,也在初始化期间:

;; Both also print `nil` to the `*Messages*` buffer.
(message "%s" (find-font (font-spec :name "inconsolata")))
(message "%s" (find-font (font-spec :name "Inconsolata")))

;; Throws "error: No fonts being used"
(message "%s" (describe-font "Inconsolata"))

我不知道如何在初始化期间检测是否安装了字体。我的问题变成了:当 emacsclient 启动时,如何可靠地检查字体是否可用?

编辑2:

after-init-hookemacs-startup-hookwindow-setup-hookbefore-make 中回显-frame-hookafter-make-frame-functions 也会导致 nil

最佳答案

叹息...也对这个问题很恼火,但我找到了 Emacs Lisp 解决方案。以下是我的 Emacs 配置中相应片段的直接复制/粘贴:

(defun frame-font-setup
(&rest ...)
;; (remove-hook 'focus-in-hook #'frame-font-setup)
(unless (assoc 'font default-frame-alist)
(let* ((font-family (catch 'break
(dolist (font-family
'("Powerline Consolas"
"Consolas for Powerline"
"Consolas"
;;
"Powerline Inconsolata-g"
"Inconsolata-g for Powerline"
"Inconsolata-g"
;;
"Powerline Source Code Pro"
"Source Code Pro for Powerline"
"Source Code Pro"
;;
"Powerline DejaVu Sans Mono"
"DejaVu Sans Mono for Powerline"
"DejaVu Sans Mono"
;;
"Monospace"))
(when (member font-family (font-family-list))
(throw 'break font-family)))))
(font (when font-family (format "%s-12" font-family))))
(when font
(add-to-list 'default-frame-alist (cons 'font font))
(set-frame-font font t t)))))
(add-hook 'focus-in-hook #'frame-font-setup)

嗯嗯...[高兴]

关于emacsclient 字体检查不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221960/

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