使用 Ctrl 键和鼠标滚动调整 Emacs 字体大小

Posted

技术标签:

【中文标题】使用 Ctrl 键和鼠标滚动调整 Emacs 字体大小【英文标题】:Emacs font sizing with Ctrl key and mouse scroll 【发布时间】:2011-01-06 16:56:41 【问题描述】:

notepad++ 允许我在按住 Ctrl 键并将鼠标中间滚动按钮向前旋转时增加字体大小。

同样,当我按住Ctrl并向后旋转鼠标中滚动按钮时,喜欢的尺寸会减小。

如何使用 Emacs 获得相同的效果?

【问题讨论】:

你的答案在下面,但你真的经常这样做吗? 是的,当我向我的团队解释代码时,我经常会最大化字体。甚至在演示时在投影仪中也很有用 另见:***.com/questions/294664/… 这是emacs老兄,你为什么要用鼠标? C-x C-+ 就是这样! Xah Lee 有最好的答案,独立于操作系统。用C-h k C-<scroll-up> 描述密钥。所以,对于 Windows,我得到(kbd "<C-wheel-up>")。来自ergoemacs.org/emacs/emacs_mouse_wheel_config.html 【参考方案1】:

使用 emacs23,您可以在 .emacs.el 中添加以下行:

(global-set-key (kbd "<C-mouse-4>") 'text-scale-decrease)
(global-set-key (kbd "<C-mouse-5>") 'text-scale-increase)

【讨论】:

我在 windows 上使用 emacs 23.1.5。但我无法让它工作 +1 不确定mouse-4 和mouse-5 是什么,但这对我来说非常有效,非常感谢! (global-set-key (kbd "") 'text-scale-decrease) (global-set-key (kbd "") 'text-scale-increase) 在干净的 ubuntu 安装中,C-mouse-4 和 C-mouse-5 与快速滚动相关联,所以我使用的是 M-mouse-4 和 M-mouse-5(但是s- 前缀也可用)。 @mariotomo 如果自定义 mouse-wheel-scroll-amount 变量,可以更改绑定快速滚动的键,然后使用这些键进行缩放。 唉,这对 any 文本不起作用。 IE。我在 .emacs 配置中有一行 ...'(font-lock-comment-face ((t (:foreground "dim gray" :slant italic :weight bold :height 71 :family "purisa")))。这是为 cmets 设置字体/大小,并且该字体由于某种原因对 text-scale-decrease 函数没有反应。【参考方案2】:

AlexCombas' answer的代码:

(defun font-big () (交互的) (set-face-attribute 'default nil :height (+ (face-attribute 'default :height) 10))) (defun font-small () (交互的) (set-face-attribute 'default nil :height (- (face-attribute 'default :height) 10))) (global-set-key (kbd "") 'font-small) (global-set-key (kbd "") 'font-big)

编辑:最少和最多使用

(defun font-big () (交互的) (set-face-attribute 'default nil :height (最小 720 (+ (face-attribute 'default :height) 10)))) (defun font-small () (交互的) (set-face-attribute 'default nil :height (最多 80 (- (face-attribute 'default :height) 10))))

【讨论】:

这行得通。无论如何我可以将字体大小限制为最大 72 和最小 8? &lt;C-wheel-down&gt;&lt;C-wheel-up&gt; 对我不起作用。我使用了&lt;C-mouse-5&gt;&lt;C-mouse-4&gt;,效果很好。 (如果重要的话,我在 ArchLinux 上) 我使用了示例代码,并在函数 font-bigfont-small 的最后一个右括号之前添加了以下内容,以便消息行告诉命令时新高度是多少被执行:(message "Default face height set to %d" (face-attribute 'default :height))【参考方案3】:

试试这个:

(global-set-key (kbd "<C-mouse-4>") (lambda () (interactive) (text-scale-decrease 1)))
(global-set-key (kbd "<C-mouse-5>") (lambda () (interactive) (text-scale-increase 1)))

【讨论】:

【参考方案4】:

理论上我可以给你答案,但是比我更熟练的人将不得不编写 lisp 我只是有点忙 atm 来为自己弄清楚。

如果明天之前没有人回复,我会翻书并弄清楚。

需要做什么: 写一个函数(font-big)来做这个:

    font-default-size = font-default-size+1`

    然后重新评估所有打开的缓冲区。

然后将函数绑定到一个键(define-key map [C-wheel-up] 'font-big)

然后对 (font-small) 执行相同的操作。

我希望我的想法至少得到部分功劳:)

【讨论】:

感谢您的想法 :-)。找 lisp 高手写一个函数【参考方案5】:

Zoom Frame 是你想要的。我一直在做你描述的事情。加载 zoom-frm.el 后,添加一些绑定,例如:

(global-set-key [S-mouse-1] '放大) (global-set-key [C-S-mouse-1] '缩小) (global-set-key (vector (list 'control mouse-wheel-down-event)) '放大) (global-set-key (vector (list 'control mouse-wheel-up-event)) '缩小)

另见:http://www.emacswiki.org/emacs/SetFonts#ChangingFontSize

【讨论】:

你摇滚。我会玩这些设置。我用其他人的建议做了 zoom。这个 emacs 自带的可以减少我的 emacs 配置。 这可能行得通,但正如您所说,使用这些命令需要将zoom-frm.el 添加到.emacs.d/lisp/,这需要添加frame-cmds.el,这需要添加更多文件,所有这些都很大。我不愿意将所有这些东西添加到我的 Emacs 设置中,只是为了获得简单的字体缩放功能。 @cobbal 的答案不需要任何额外的东西就可以解决问题。 @TeemuLeisti:不需要。只需要三个文件:(1) zoom-frm.el、(2) frame-cmds.el 和 (3) frame-fns.el。这些文件是分开的,因为有人可以在没有#1 或#2 的情况下使用#3,或者在没有#1 的情况下使用#2。如果这仅作为缩放“包”提供,那么您可以做的就是:始终加载所有三个。哦,并且 none 是“huge”:所有 3 个加起来大约 100KB,没有 cmets。无论如何,请不要觉得有义务使用它们中的任何一个。 只是如果只想让这个简单的缩放功能与鼠标一起使用,cobbal 的答案就可以了。无论如何,我收回了“巨大”,并没有冒犯的意思。这些文件似乎实现了很多有用的功能。

以上是关于使用 Ctrl 键和鼠标滚动调整 Emacs 字体大小的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 鼠标滚动设置字体大小

iOS9中怎样设置字体大小

Pycharm快捷键设置(鼠标滚动控制字体大小)

网页界面怎么调整大小

idea 通用设置 编码设置防止乱码ctrl+鼠标滚动就可以缩放字体大小 跟浏览器一样

Pycharm用Ctrl+鼠标滚轮控制字体大小