我知道我可以使用 Cx C-+ 放大/缩小,但这仅适用于当前文件。一旦我打开另一个,文本就会回到默认值,一遍又一遍地做真的很烦人。如何保持当前 emacs 会话的全局缩放级别?
我知道如果您知道确切的字体大小,可以在初始化文件中设置它,而我不知道。另外,我不想让它永久保留——当我几个小时没有外部屏幕或在演示时连接到投影仪时,我通常需要这个。
这段代码修改了放大/缩小功能以将命令应用于每个缓冲区。那应该实现您正在尝试做的事情。
(defadvice text-scale-increase (around all-buffers (arg) activate)
(dolist (buffer (buffer-list))
(with-current-buffer buffer
ad-do-it)))
这里给出的所有答案以及更多答案都可以在 EmacsWiki 页面上找到,该页面专门讨论设置和更改字体大小的问题,包括增量更改。
@abo-abo 的答案是在正确的轨道上,无论你是否认为他在示例代码中使用的尺寸太大,无论解决方案是否没有解决增量调整。
@juanleon 的答案基本上使文本缩放模拟更改默认字符大小(@abo-abo 的答案)。
文本缩放的重点是缩放缓冲区文本(一个缓冲区,无论显示在哪里),而不是框架文本(框架中显示的所有缓冲区)。但是,如果您希望所有缓冲区在给定帧中更改其文本大小,那么在这种情况下没有理由打扰文本缩放:只需更改字体大小即可。
zoom-in/out
您可以执行其中一项或两项操作(随处缩放缓冲区文本或缩放帧),并且如果您使用来自 library
的命令,则使用相同的命令逐步执行此操作zoom-frm.el
。
另一方面,如果您确实想增量更改所有帧中所有缓冲区的文本大小,那么最好的方法是(1)@juanleon 的建议或(2)增量缩放标准面
default
。
要执行后者,您可以使用命令zoom-all-frames-in
和
zoom-all-frames-out
在库中
zoom-frm.el
只需将其粘贴*scratch*
并评估(使用C-jor C-x C-e):
(set-face-attribute 'default nil :height 150)
将其放入 init 文件并稍后在不需要时将其注释掉并没有错。
可以使用处理这个确切问题的小模式来缩放所有文本(包括状态行和行号):purcell/default-text-scale。它在 Melpa 中可用。
这会缩放所有文本以避免文本比例不匹配,例如填充列指示器的行号偏移不正确。
这里的其他答案要么不适用于新缓冲区,要么需要过多的手动干预。
在进行演示时连接到投影仪。
还有另一个包!
从网站引用
M-x presentation-mode
以开始演示。C-x C-+
通过或调整比例大小C-x C--
参见https://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.htmlM-x presentation-mode
再次执行。M-x presentation-mode
再次执行,最后的比例将被再现。presentation-default-text-scale
.它还描述了与其他类似模式/包的差异。