emacs全局放大/缩小

时间:2013-09-13 09:48:50

标签: emacs font-size zooming

我知道我可以使用C-x C- +放大/缩小,但这仅适用于当前文件。一旦我打开另一个文本,文本就会回到默认值,并且一遍又一遍地执行它真的很烦人。如何为当前的emacs会话保持全局缩放级别?

我知道如果你知道确切的字体大小,我可以在init文件中设置它,我不知道。另外,我不想让它永久保存 - 我通常需要这个,当我没有外部屏幕几个小时或连接到投影仪同时进行演示时。

5 个答案:

答案 0 :(得分:9)

这段代码修改了放大/缩小功能,以将命令应用于每个缓冲区。这应该达到你要做的目的。

(defadvice text-scale-increase (around all-buffers (arg) activate)
  (dolist (buffer (buffer-list))
    (with-current-buffer buffer
      ad-do-it)))

答案 1 :(得分:7)

此处提供的所有答案以及更多内容均可在此处获得 EmacsWiki页面专门讨论setting and changing font size的问题,包括逐步更改它。

@ abo-abo的回答是正确的,无论是否 你认为他在示例代码中使用的大小太大了,而且 无论解决方案是否解决增量问题 调整。

@juanleon的答案基本上使文本缩放模拟 更改默认字符大小(@ abo-abo的答案)。

文本缩放的目的是缩放缓冲区文本(一个缓冲区,没有 它显示的地方),而不是框架文本(所有缓冲区显示在 框架)。但是,如果您希望所有缓冲区都具有其文本大小 在给定的框架中更改,然后没有理由打扰文本 在这种情况下缩放:只需更改字体大小。

你可以做其中之一或两者(在任何地方缩放缓冲文本或缩放 框架),并使用相同的命令逐步执行,如果您使用 来自库的命令zoom-in/out zoom-frm.el

另一方面,如果你确实想要逐步改变 所有帧中的所有缓冲区的文本大小,那么最好的方法是 (1)@ juanleon的建议或(2)逐步缩放标准面部 的 default

要执行后者,您可以使用命令zoom-all-frames-in和 库中的zoom-all-frames-out zoom-frm.el

答案 2 :(得分:5)

只需将其粘贴到*scratch*并进行评估(使用 C-j C-x C-e ):

(set-face-attribute 'default nil :height 150)

将它放在init文件中没有错 如果你不需要它,可以在以后评论它。

答案 3 :(得分:5)

可以使用处理此确切问题的小模式缩放所有文本(包括状态行和行号):purcell/default-text-scale。它可以在Melpa中找到。

这会缩放所有文本以避免文本比例不匹配,例如填充列指示符的行号错误地偏移。

此处的其他答案要么对新缓冲区不起作用,要么需要过多的手动干预。

答案 4 :(得分:0)

  

在演示时连接到投影仪。

还有另一个包!

emacs-presentation-mode

从网站引用

  1. 执行~M-x presentation-mode~开始演示。
  2. 将比例尺寸调整为~C-x C- +〜或~C-x C--~ 请参阅https://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html
  3. 演示后,再次执行~M-x presentation-mode。
  4. 然后再次执行~M-x presentation-mode~,将再现最后一个比例。
  5. 如果要将其大小作为表示模式的默认大小进行说明 重启Emacs后,设置~exsentation-default-text-scale~。
  6. 它也有来自其他类似模式/包的description of differences