微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Emacs中更改当前缓冲区的字体?

在emacs中,我可以通过text-scale-adjust来改变当前缓冲区的字体大小。 但是,为了改变字体,我只能find像set-face-font或set-frame-font这样的函数,它们会在emacs中全局更改字体(或者在当前帧中更改所有缓冲区的字体)。

emacs中是否有一个函数只改变当前缓冲区的字体(认字体),而不修改任何其他缓冲区中的字体?

Mac与Windows浏览器字体高度渲染问题

从AWS Cloudfront提供服务时,请发出加载Web字体的问题

如果我使用客户机上未安装的字体,会发生什么情况?

无法安装字体

@ font-face:为什么在Windows上这个单独的字体看起来不一样?

从Emacs 23开始,可以通过Mx buffer-face-set更改每个Mx buffer-face-set 。 请参阅http://www.emacswiki.org/emacs/FacesPerBuffer 。 所以,拿Firegun的回答,你可以像这样使用buffer-set-face :

(defun jmi/set-buffer-local-family (font-family) "Sets font in current buffer" (interactive "sFont Family: ") (defface tmp-buffer-local-face '((t :family font-family)) "Temporary buffer-local face") (buffer-face-set 'tmp-buffer-local-face))

(注意:这仍然面临着面名本身是全球性的问题)

不,据我所知,你不能。 在GNU Emacs中,字体是脸部的一部分。 除非你,例如,只使用一个特定的脸部缓冲区你想要的,你把那个脸的字体设置为你想要的,我不认为你可以实现你的要求。

我找到了一个办法,虽然它有一些副作用,因为它改变了全局变量buffer-face-mode-face

例如,我想设置当前的缓冲区,我可以评估这个函数定义并运行它

(defun my-buffer-face-mode-serif () "Sets a fixed width (monospace) font in current buffer" (interactive) (setq buffer-face-mode-face '(:family "Times New Roman")) (buffer-face-mode))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐