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

使用Ctrl键和鼠标滚动调整Emacs字体大小,emacs,mouseevent,font-size,Emacs,Mouseevent,Font Size,记事本++允许我在按住Ctrl键并向前旋转鼠标中滚动按钮时增加字体大小 同样,当我按住Ctrl键并向后旋转鼠标中的滚动按钮时,屏幕的大小会减小 如何使用Emacs获得相同的结果?理论上,我可以给你答案,但是比我更熟练的人将不得不编写lisp,我只是有点忙,我自己来弄清楚 如果明天之前没人回复,我会查清楚的 需要做什么: 编写一个函数(大字体),用于执行以下操作: 字体默认大小=字体默认大小+1` 然后重新评估所有打开的缓冲区 然后将函数绑定到一个键(定义键映射[C-wheel-up]“字体大”)

记事本++允许我在按住Ctrl键并向前旋转鼠标中滚动按钮时增加字体大小

同样,当我按住Ctrl键并向后旋转鼠标中的滚动按钮时,屏幕的大小会减小


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

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

如果明天之前没人回复,我会查清楚的

需要做什么: 编写一个函数(大字体),用于执行以下操作:

  • 字体默认大小=字体默认大小+1`

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

  • 然后将函数绑定到一个键(定义键映射[C-wheel-up]“字体大”)

    然后对(小字体)执行相同的操作


    我希望我的想法至少能获得部分学分:)

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

    (global-set-key (kbd "<C-mouse-4>") 'text-scale-decrease)
    (global-set-key (kbd "<C-mouse-5>") 'text-scale-increase)
    
    (全局设置键(kbd“”)“文本比例减小)
    (全局设置键(kbd“”)“文本比例增加)
    
    代码用于:

    (德芬字体大() (互动) (设置面属性“默认为零:高度” (+(面属性“默认值:高度)10))) (defun字体小() (互动) (设置面属性“默认为零:高度” (((面属性的默认值:高度)10))) (全局设置键(kbd“”)字体小) (全局设置键(kbd“”)字体大) 编辑:用于最小和最大使用

    (defun font-big () (interactive) (set-face-attribute 'default nil :height (min 720 (+ (face-attribute 'default :height) 10)))) (defun font-small () (interactive) (set-face-attribute 'default nil :height (max 80 (- (face-attribute 'default :height) 10)))) (德芬字体大() (互动) (设置面属性“默认为零:高度” (最低720 (+(面属性“默认值:高度)10))) (defun字体小() (互动) (设置面属性“默认为零:高度” (最多80 (((面属性的默认值:高度)10))) 试试这个:

    (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)))
    
    (全局设置键(kbd“”)(lambda()(交互式)(文本比例减小1)))
    (全局设置键(kbd“”)(lambda()(交互式)(文本比例增加1)))
    
    就是你想要的。我一直在做你描述的事情。加载
    zoom frm.el
    后,添加一些绑定,例如:

    (global-set-key [S-mouse-1] 'zoom-in) (global-set-key [C-S-mouse-1] 'zoom-out) (global-set-key (vector (list 'control mouse-wheel-down-event)) 'zoom-in) (global-set-key (vector (list 'control mouse-wheel-up-event)) 'zoom-out) (全局设置键[S-鼠标-1]'放大) (全局设置键[C-S-鼠标-1]“缩小”) (全局设置键(矢量(列表“控制鼠标滚轮下降事件”)“放大) (全局设置键(矢量(列表“控制鼠标滚轮上升事件”)“缩小)
    另请参见:

    谢谢您的想法:-)。寻找lisp专家编写函数我在windows上使用emacs 23.1.5。但是我不能让它工作+1不确定鼠标-4和鼠标-5是什么,但是这对我来说非常有效,所以谢谢!在一个干净的ubuntu安装中,C-mouse-4和C-mouse-5与快速滚动相关,因此我使用m-mouse-4和m-mouse-5(但s-前缀也可用)。@mariotomo如果您自定义鼠标滚轮滚动量变量,您可以更改绑定到快速滚动的键,然后使用这些键进行缩放。唉,这对任何文本都不起作用。也就是说,我在.emacs配置中有一行
    。(字体锁定注释面((t(:前景“暗灰色”:倾斜斜体:粗体:高度71:家族“purisa”))
    。这是为注释设置字体/大小,并且该字体在
    文本缩放减少功能上不会因某种原因做出反应。这是有效的。无论如何,我可以将字体大小限制为最大72,最小8?
    对我不起作用。我使用了
    ,效果很好。(我使用的是ArchLinux,如果有必要的话)我使用了示例代码,并在函数的最后一个右括号前添加了以下内容
    font big
    font small
    ,以便消息行告诉执行命令时的新高度:
    (消息“默认面部高度设置为%d”(面属性“默认值:高度))
    下面有你的答案,但你真的经常这么做吗?是的,我经常在向团队解释代码时最大化字体。即使在演示时它在投影仪中也很有用。另请参见:是emacs dude,你为什么要使用鼠标?C-x C-+是最好的方式!Xah Lee有最好的答案,与操作系统无关。用 所以,对于windows,我得到了
    (kbd“”)
    。来自您的rock。我将围绕这些设置进行操作。我根据其他人的建议进行了缩放。这一个与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。如果这只能作为缩放“包”使用,那么你所能做的就是:始终加载所有三个文件。哦,它们都不是“大的”:总共3个大约100KB,没有评论。无论如何,请不要觉得有必要使用其中任何一个。只是如果你只想让这个简单的缩放功能与鼠标一起工作,科巴的答案很好。无论如何,我收回了“巨大的”,并没有冒犯的意思。看起来这些文件实现了很多有用的功能。 (global-set-key [S-mouse-1] 'zoom-in) (global-set-key [C-S-mouse-1] 'zoom-out) (global-set-key (vector (list 'control mouse-wheel-down-event)) 'zoom-in) (global-set-key (vector (list 'control mouse-wheel-up-event)) 'zoom-out)