【问题标题】:emacs zoom in/out globallyemacs 全局放大/缩小
【发布时间】:2013-09-17 23:01:06
【问题描述】:

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

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

【问题讨论】:

标签: emacs font-size zooming


【解决方案1】:

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

还有另一个包!

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

它也有来自其他类似模式/包的description of differences

【讨论】:

    【解决方案2】:

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

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

    这里的其他答案要么不适用于新缓冲区,要么需要太多人工干预。

    【讨论】:

    • 效果很好!似乎是最好的解决方案。
    【解决方案3】:

    所有这里给出的答案,以及更多,都可以在 EmacsWiki 页面专门讨论 setting and changing font size 的问题,包括逐步更改它。

    @abo-abo 的答案是正确的,无论是否 您认为他在示例代码中使用的尺寸太大,并且 不管解决方案是否不解决增量 调整。

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

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

    你可以做一个或两个(在任何地方缩放缓冲区文本或缩放一个 框架),并使用相同的命令增量执行此操作,如果您使用 来自库的命令zoom-in/out zoom-frm.el.

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

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

    【讨论】:

    • 感谢您解释缩放 w.r.t 的含义。帧和缓冲区。就像你说的 - 我真的想改变所有缓冲区和框架中的文本大小,所以this method from the wiki 和 juanleon 的回答对我有用。我也会记住 zoom-frm.el。
    【解决方案4】:

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

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

    【讨论】:

    • 太好了,谢谢!将它添加到我的初始化文件中。您也许应该向我刚刚碰到的this related discussion 提及该方法。
    • 好的,太好了!虽然,页面上的第一种方法适用于您访问的新文件,而您的仅适用于所有打开的缓冲区(现在才注意到)。也许是因为他们还设置了text-scale-mode-amount 或其他东西 - 我真的不知道 elisp。
    【解决方案5】:

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

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

    把这个放到init文件里没有错 并在以后不需要时将其注释掉。

    【讨论】:

    • 嗯,这只是让我的窗口变得如此之大,以至于超出了屏幕 - 这正是我想要避免猜测我连接到的一些奇怪屏幕的确切字体大小的原因,我不知道不知道分辨率。我喜欢使用 C-x C-+ 迭代放大的选项,我只想在整个会话中保持该值。这与我在网络浏览器中的行为相同。
    猜你喜欢
    • 2011-07-28
    • 2014-10-30
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多