23

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

我知道如果您知道确切的字体大小,可以在初始化文件中设置它,而我不知道。另外,我不想让它永久保留——当我几个小时没有外部屏幕或在演示时连接到投影仪时,我通常需要这个。

4

5 回答 5

10

这段代码修改了放大/缩小功能以将命令应用于每个缓冲区。那应该实现您正在尝试做的事情。

(defadvice text-scale-increase (around all-buffers (arg) activate)
  (dolist (buffer (buffer-list))
    (with-current-buffer buffer
      ad-do-it)))
于 2013-09-13T10:30:47.747 回答
9

这里给出的所有答案以及更多答案都可以在 EmacsWiki 页面上找到,该页面专门讨论设置和更改字体大小的问题,包括增量更改。

@abo-abo 的答案是在正确的轨道上,无论你是否认为他在示例代码中使用的尺寸太大,无论解决方案是否没有解决增量调整。

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

文本缩放的重点是缩放缓冲区文本(一个缓冲区,无论显示在哪里),而不是框架文本(框架中显示的所有缓冲区)。但是,如果您希望所有缓冲区在给定帧中更改其文本大小,那么在这种情况下没有理由打扰文本缩放:只需更改字体大小即可。

zoom-in/out您可以执行其中一项或两项操作(随处缩放缓冲区文本或缩放帧),并且如果您使用来自 library 的命令,则使用相同的命令逐步执行此操作zoom-frm.el

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

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

于 2013-09-13T21:51:53.813 回答
8

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

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

将其放入 init 文件并稍后在不需要时将其注释掉并没有错。

于 2013-09-13T09:55:31.760 回答
5

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

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

这里的其他答案要么不适用于新缓冲区,要么需要过多的手动干预。

于 2015-12-12T23:32:05.163 回答
1

在进行演示时连接到投影仪。

还有另一个包!

emacs 演示模式

从网站引用

  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 后将其大小保持为演示模式的默认大小,请设置presentation-default-text-scale.

它还描述了与其他类似模式/包的差异。

于 2018-05-15T01:25:33.127 回答