代码之家  ›  专栏  ›  技术社区  ›  metakermit

emacs全局放大/缩小

  •  30
  • metakermit  · 技术社区  · 11 年前

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

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

    5 回复  |  直到 11 年前
        1
  •  10
  •   juanleon    11 年前

    这段代码修改了放大/缩小功能,将命令应用于每个缓冲区。这应该会实现你想要做的事情。

    (defadvice text-scale-increase (around all-buffers (arg) activate)
      (dolist (buffer (buffer-list))
        (with-current-buffer buffer
          ad-do-it)))
    
        2
  •  9
  •   Drew    11 年前

    全部的 这里给出的答案以及更多信息,可在 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 在图书馆 缩放功能.el

        3
  •  8
  •   abo-abo    11 年前

    把这个粘贴进去 *scratch* 并评估( C-j型 C-x C-e公司 ):

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

    把这个放在init文件中没有错 等你不需要的时候再评论。

        4
  •  5
  •   ideasman42    8 年前

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

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

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

        5
  •  3
  •   Woodrow Douglass    5 年前

    连接到波束形成器,同时进行演示。

    还有另一个包裹!

    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演示模式 再一次
    4. 然后执行 M-x演示模式 同样,最后一个刻度将被复制。
    5. 如果您想将其大小保持为演示模式的默认大小 重新启动Emacs后,设置 presentation-default-text-scale .

    它也有 description of differences 与其他类似的模式/封装不同。