使用 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 "...'(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 "编辑:最少和最多使用
(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?<C-wheel-down>
和 <C-wheel-up>
对我不起作用。我使用了<C-mouse-5>
和<C-mouse-4>
,效果很好。 (如果重要的话,我在 ArchLinux 上)
我使用了示例代码,并在函数 font-big
和 font-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
后,添加一些绑定,例如:
另见: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 字体大小的主要内容,如果未能解决你的问题,请参考以下文章