全局缩放emacs界面

30
我知道我可以使用C-x C-+来放大/缩小文本,但这只适用于当前文件。一旦我打开另一个文件,文本就会返回默认值,再次进行操作非常繁琐。我该如何在当前emacs会话中全局保持缩放级别?我知道如果你知道确切的字体大小,可以在init文件中设置此选项,但我不知道。此外,我不想将其设置得太固定 - 我通常需要在没有外部屏幕的情况下使用它几个小时或连接到投影仪时使用它。

这个回答解决了你的问题吗?在emacs框架中增加/减小字体大小(不仅限于缓冲区) - Clément
5个回答

10

这段代码修改了缩放功能,使其应用于每个缓冲区。 这样可以实现您要尝试的操作。

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

太好了,谢谢!我已经将它添加到我的init文件中。你或许应该在这个相关的讨论中提到这种方法,我刚刚碰巧遇到了它。 - metakermit
4
好的,没问题!尽管页面上第一个方法适用于你访问的新文件,但你的方法只适用于所有打开的缓冲区(我现在才注意到)。也许是因为它们还设置了 text-scale-mode-amount 或者类似的东西 - 我不太懂 elisp。 - metakermit

9
所有回答,以及更多内容,都可在EmacsWiki的设置和更改字体大小 专页上找到,包括逐步更改字体大小等方面的内容。
@abo-abo的回答已经很接近正确答案了,无论您认为他在示例代码中使用的字号是否太大,以及这个解决方案是否不支持逐步调整字体大小。
@juanleon的回答本质上是模拟更改默认字符大小(@abo-abo的答案)来实现文本缩放。
文本缩放的重点是对缓冲区文本进行缩放(一个缓冲区,在何处显示都一样),而不是对框架文本进行缩放(在框架中显示的所有缓冲区)。但如果您希望在给定的框架中更改所有缓冲区的文本大小,那么就没有必要使用文本缩放:只需更改字体大小即可。
您可以执行其中之一或两者兼而有之(在所有位置缩放缓冲区文本或放大框架),并且如果使用zoom-frm.el库中的命令zoom-in/out,可以逐步执行这些操作。
另一方面,如果您确实希望逐步更改所有框架中所有缓冲区的文本大小,那么最好的方法是使用(1) @juanleon的建议或(2)逐步缩放标准面 default
要做到后者,您可以在zoom-frm.el库中使用zoom-all-frames-inzoom-all-frames-out命令。

感谢您对缩放与帧和缓冲区相关影响的解释。正如您所说 - 我真的想在所有缓冲区和帧中更改文本大小,因此维基百科上的这种方法和juanleon的答案对我很有用。我也会记住zoom-frm.el。 - metakermit

8

只需将以下代码粘贴到*scratch*中并进行评估(使用C-jC-x C-e):

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

把这个放在初始化文件中,以后不需要时再注释掉也没问题。

这样做没有任何问题。涉及IT技术相关内容。

2
嗯,这使得我的窗口变得如此巨大,以至于超出了屏幕范围 - 这正是我想要避免猜测某些奇怪屏幕的确切字体大小且不知道分辨率的原因。我喜欢使用C-x C-+迭代缩放的选项,并希望在整个会话中保持该值。 这就是我在Web浏览器中拥有的相同行为。 - metakermit

5

通过使用一个小型模式可以缩放所有文本(包括状态行和行号),以解决这个问题:purcell/default-text-scale。它在Melpa中可用。

这将缩放所有文本,避免出现文本比例不匹配的情况,例如行号或填充列指示器被错误地偏移。

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


非常好用!看起来是最佳解决方案。 - ideasman42

3
在进行演示时连接到投影仪,有另一个可用的软件包!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 后,请设置 presentation-default-text-scale。此外,还有与其他类似模式/软件包的区别说明

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接