- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 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-hook
、emacs-startup-hook
、window-setup-hook
、before-make 中回显-frame-hook
和 after-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/
当我运行 emacsclient 时,它不响应鼠标点击。我的主要 Emacs 进程在终端中运行并正确响应鼠标点击,因为我的 Emacs 配置文件中有以下代码: (xterm-mouse-mode 1)
运行 emacsclient 后如何始终控制窗口焦点? 目前,重点取决于我是否已经运行了 emacs 服务器。当 emacsclient 调用替代编辑器时,焦点将转移到新的 emacs 窗口。当 em
我正在尝试为 emacsclient 设置字体,如下所示: (let ((default-font (cond ((member "Inconsolata"
如果我执行以下操作,我会遇到问题: 我启动一个 emacs 服务器('emacs --daemon') 我启动客户端 ('emacsclient -c'),然后打开文件 foo.txt。 我启动另一个
当我启动时,我启动 emacs --daemon它评估我的 .emacs 但有一个异常(exception): (add-to-list 'load-path "~/.elisp/zenburn-em
在前台模式下运行时,Emacs 会正确插入非拉丁语输入。 当我以 emacs --damon 运行它时+ emacsclient ,开始疯狂。每个应该插入一个字符的按键都会导致一个 Action ,比
我试图在 Emacs 中找到一个钩子(Hook),它应该在 Emacs 服务器正常关闭之前触发。 我尝试了使用 elisp 的 kill-emacs-query-functions、kill-emac
这是一个相当基本的问题,但是在 emacs 的单独框架(make-new-frame)中打开新文件或在 emacsclient 的实例中打开文件之间有什么实际区别?我可以看到,如果您通过终端工作,差异
我想知道如何在新的最大化框架中启动 emacsclient。 emacsclient -c 启动一个新框架,但手册页指示无法最大化此框架。没有像 --maximized 这样的选项. 警告:这不是来自
ssh -X root@localhost "emacsclient -c" Warning: untrusted X11 forwarding setup failed: xauth key dat
我最近安装了 Emacs 23(在 OS X Leopard 上)并试用了 emacs 服务器。我尝试了两种方法:(1) 将 (server-start) 放在我的 .emacs 文件中,以及 (2)
我有一个程序可以将文本发送到任何其他程序以进行进一步分析(例如 sed、grep 等)。我希望它将数据发送到 Emacs 并在那里进行分析。我该怎么做? EmacsClient 默认采用文件名,这是一
如果我运行 emacs --daemon (在 .xinitrc 或更高版本中)然后是 emacsclient -c , 新创建的框架具有黑色光标颜色,无论颜色主题或任何其他设置。更确切地说,在我输入
我最近切换到 emacsclient 进行大多数文本编辑。我正在尝试将我的一些设置迁移到新的(略有不同的)环境。 特别是,在我的 .emacs 文件中,我有一个设置窗口大小和准备一些主题的函数。然而,
模式在这里:http://emacswiki.org/emacs/AutoComplete 在底部: I have a black background and when I use auto-com
我最近升级到 Emacs 23 附带的 Ubuntu 10.04。我需要 Jabref 将引文推送到 Emacs。 然而,尽管我安装了 Jabref 插件来通过 emacsclient 推送引文,但它
你好吗关闭 emacsclient 框架而不终止服务器/守护进程 ? 做 C-x C-c或 C-x 5 0在 gui 中将退出框架和服务器(以及其他客户端),而这只是在从终端完成时退出当前框架。 (P
我总是将 emacs 作为守护进程运行,但是当我想做一些类似的事情时 sudo emacsclient /etc/make.conf 我不能这样做,因为 root 正在使用另一个 emacs,我真的不
我打电话后才知道(start-server)在现有的 Emacs session 中,我可以使用 emacsclient -c (在同一台计算机上)创建连接到该服务器的新框架,以便由 emacscli
在编译源代码的过程中,我希望 GNU Make 调用一个 emacs defun。为此,我有 2 个选择: 启动一个新的 emacs 实例,加载所需的函数并调用它。 像这样从 emacsclient
我是一名优秀的程序员,十分优秀!