在Emacs中使用触摸板进行水平滚动

10

我在MacBook上运行一个应用程序,大多数应用程序都允许我通过触摸板上的双指拖动实现纵向和横向滚动。 我想利用这种能力在emacs中定位光标。

将以下行添加到.emacs文件中允许我垂直移动光标:

(global-set-key [wheel-up] 'previous-line)
(global-set-key [wheel-down] 'next-line)

我不知道是否有与滚轮左或滚轮右等价的设置。有人可以帮忙吗?


我也遇到了同样的问题。如何使它滚动超过1行? - n179911
5个回答

5

将以下内容添加到您的.emacs文件中:

;; Turn on horizontal scrolling with mouse wheel
(global-set-key (kbd "<mouse-6>") 'scroll-right)
(global-set-key (kbd "<mouse-7>") 'scroll-left)

当你第一次使用Emacs时,它会询问你是否要激活受限命令scroll-left。这只是因为一些用户在初次使用时可能会感到困惑。


如何实现类似于垂直滚动的行为,但是针对鼠标光标下的emacs窗口,而不仅仅是当前缓冲区? - Netsu
UPD 噢,我从 (defun mwheel-scroll(buffer (window-buffer curwin)) 看到了。 - Netsu

5

这个稍微简化的版本对我来说可行:

(global-set-key [wheel-right] 'scroll-left)
(global-set-key [wheel-left] 'scroll-right)

或者针对OSX的滚动方向进行反转:

(global-set-key [wheel-right] 'scroll-left)
(global-set-key [wheel-left] 'scroll-right)

这两个版本有什么区别? - a06e

3
(global-set-key (kbd "<mouse-7>")
  (lambda () (interactive) (message "WHEEEEEL")))

对我来说有效。尝试使用C-h c,然后按照你打算的方式滚动鼠标,看看触发了哪个事件。它会在回显区告诉你。


2
这似乎不能与MagicTrackpad一起使用,C-h c也没有显示任何水平滚动的内容。 - ocodo
1
对我来说它不起作用(通常的触摸板)。可能的原因是什么? - klm123

2
在版本26.2中,我可以从“鼠标”自定义组中设置这些变量:
'(mouse-wheel-flip-direction t) ;; correct left-right scroll direction for OS X
'(mouse-wheel-tilt-scroll t)    ;; enable left-right scroll from trackpad

这对我来说非常有效,使用Emacs 28.0.50和xterm-mouse-mode,谢谢! - hyperair

0
在emacs 25.1中,在触摸板上向左和向右滑动时,请查看*Messages*缓冲区。从外观来看,键绑定是wheel-rightwheel-left,具有双重和三重变体。
例如:
(global-set-key (kbd "<triple-wheel-right>")
  (lambda () (interactive) (message "wheeling right")))

(global-set-key (kbd "<triple-wheel-left>")
  (lambda () (interactive) (message "wheeling left")))

对我来说,在 macOS 中这些值没有被反转


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接