如何在Emacs中设置字体大小?

Jub*_*uba 335 emacs fonts emacs-faces

我还想在我的.emacs文件中保存字体大小.

hua*_*uan 392

(set-face-attribute 'default nil :height 100)
Run Code Online (Sandbox Code Playgroud)

该值为1/10pt,因此100将给你10pt等.

  • @TomBrito哪个自动完成?在我的Emacs中,`set-face-attribute`确实从`Mx`(`execute-extended-command`)中丢失了,但它存在于`M-:`(`eval-expression`)和`Ch f`中. (`描述-function`).`M:``可能就是你想要的,如果你不想把它放在`.emacs`文件中. (8认同)
  • @DavidS好问题.我在"[为什么某些Emacs功能无法通过`Mx`??(http://stackoverflow.com/a/29199808/578288)"中写下了答案.研究答案结果证明是教育性的. (5认同)
  • 我正在尝试执行此操作,但是在Emacs 23.1.1中,自动完成功能只会显示以下选项:set-face-background set-face-font set-face-inverse-video-p set-face-underline set-脸部背景像素图设置脸部前景设置点画设置脸部下划线p`。 (2认同)
  • 但是,当您自定义了一些面孔(例如具有不同的字体、倾斜度等)时,此解决方案不起作用。它们将保留旧尺寸,并且您必须单独设置它们。 (2认同)

Bra*_*ran 358

来自Emacswiki,GNU Emacs 23有一个内置的组合键:

C-xC-+C-xC--增加或减少缓冲区文本大小

  • 这是特定缓冲区的本地.因此,当您切换到正在编辑的其他文件时,他们将看不到此更改的效果.此外,当您关闭并重新打开缓冲区(甚至重新启动Emacs)时,它们将处于旧的默认大小.这可能是你想要的; 我只是说明这一点是完整的. (56认同)
  • 或者`Cx C- ='和'Cx C--' (29认同)
  • OP希望在.emacs中保存配置,但事实并非如此. (8认同)

Geo*_*ker 79

按Shift键和第一个鼠标按钮.您可以通过以下方式更改字体大小: 此网站有更多详细信息.

  • @AndrewLarned为了使更改永久生效,您需要在 .emacs 文件中进行更改。(有关 .emacs 文件中内容的示例,请参阅 Chris Conway 的回答。) (3认同)

Joh*_*itb 41

M-x customize-face RET default将允许您设置default面部,所有其他面部基于该面部.在那里你可以设置font-size.

这是我的.emacs中的内容.实际上,颜色主题将设置基础,然后我的自定义面部设置将覆盖一些东西.custom-set-faces由emacs的自定义面机制编写:

;; my colour theme is whateveryouwant :)
(require 'color-theme)
(color-theme-initialize)
(color-theme-whateveryouwant)

(custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(default ((t (:stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 98 :width normal :foundry "unknown" :family "DejaVu Sans Mono"))))
 '(font-lock-comment-face ((t (:foreground "darkorange4"))))
 '(font-lock-function-name-face ((t (:foreground "navy"))))
 '(font-lock-keyword-face ((t (:foreground "red4"))))
 '(font-lock-type-face ((t (:foreground "black"))))
 '(linum ((t (:inherit shadow :background "gray95"))))
 '(mode-line ((t (nil nil nil nil :background "grey90" (:line-width -1 :color nil :style released-button) "black" :box nil :width condensed :foundry "unknown" :family "DejaVu Sans Mono")))))
Run Code Online (Sandbox Code Playgroud)

  • 许多高级emacs用户更喜欢不使用自定义系统,因为它容易出错并且混合了所有自定义.最好将自定义分解为单个.el文件并从init.el加载它们,并将模式自定义添加为每个模式中的elisp代码.请参阅上面的huaiyuan的回答,了解如何通过elisp设置字体. (2认同)
  • FWIW,emacs维护者(可能是emacs的"高级"用户)使用自定义系统:https://github.com/jwiegley/dot-emacs/blob/bb93466aab71b1140da31f3e6e16e8d0615b2c21/settings.el#L1227-L1252 (2认同)

rav*_*404 36

这是另一个简单的解决方案 也适用于24

(set-default-font "Monaco 14")
Run Code Online (Sandbox Code Playgroud)

捷径:

`C-+` increases font size
`C--` Decreases font size
Run Code Online (Sandbox Code Playgroud)

  • `set-default-font` 现已弃用。使用 `(set-frame-font "Monaco 14")` 或 `(set-face-attribute 'default nil :height 130)` (3认同)

Chr*_*way 14

我有以下内容.emacs:

(defun fontify-frame (frame)
  (set-frame-parameter frame 'font "Monospace-11"))

;; Fontify current frame
(fontify-frame nil)
;; Fontify any future frames
(push 'fontify-frame after-make-frame-functions) 
Run Code Online (Sandbox Code Playgroud)

您可以替换您选择的任何字体"Monospace-11".可用选项集与系统高度相关.使用M-x set-default-font和查看选项卡完成将为您提供一些想法.在我的系统,使用Emacs 23和启用抗锯齿,可以选择按名称,例如,系统字体Monospace,Sans Serif等等.


小智 8

在X11中打开emacs,转到菜单选项,选择"设置默认字体...",更改字体大小.在同一菜单中选择"保存选项".完成.

  • 如果我重新启动 emacs,更改不会持续。 (3认同)

dav*_*lla 8

zoom.cfgglobal-zoom.cfg提供字体大小更改绑定(来自EmacsWiki)

  • C--或C-mousewheel-up:增加字体大小.
  • C- +或C-鼠标滚轮:减小字体大小.
  • C-0将字体大小恢复为默认值.


Kev*_*hey 7

以下是交互式调整字体高度大小的选项,一次一个:

;; font sizes
(global-set-key (kbd "s-=")
                (lambda ()
                  (interactive)
                  (let ((old-face-attribute (face-attribute 'default :height)))
                    (set-face-attribute 'default nil :height (+ old-face-attribute 10)))))

(global-set-key (kbd "s--")
                (lambda ()
                  (interactive)
                  (let ((old-face-attribute (face-attribute 'default :height)))
                    (set-face-attribute 'default nil :height (- old-face-attribute 10)))))
Run Code Online (Sandbox Code Playgroud)

当您想要调整所有缓冲区中的文本大小时,这是首选.我不喜欢使用解决方案text-scale-increase,text-scale-decrease因为排水沟中的行号可能会被切断.


小智 6

Firefox和其他程序允许您使用C- +和C--增加和减少字体大小.我设置了我的.emacs,以便通过添加以下代码行来获得相同的能力:

(global-set-key [C-kp-add] 'text-scale-increase)

(global-set-key [C-kp-subtract] 'text-scale-decrease)
Run Code Online (Sandbox Code Playgroud)


7st*_*tud 5

水上运动

(set-face-attribute 'default nil :font "Monaco-16" )
Run Code Online (Sandbox Code Playgroud)

从 Emacs Wiki Globally Change the Default Font,它说您可以使用以下任一方式:

(set-face-attribute 'default nil :font FONT )

(set-frame-font FONT nil t)
Run Code Online (Sandbox Code Playgroud)

哪里FONT有类似的东西"Monaco-16",例如:

(set-face-attribute 'default nil :font "Monaco-16" )
Run Code Online (Sandbox Code Playgroud)

wiki 上的第一个建议中有一个额外的右括号,导致启动时出错。我终于注意到了额外的右括号,随后我更正了维基上的建议。然后这两个建议都对我有用。