2

我在终端中使用 Emacs,23 或 24 取决于我通过 SSH 连接到的机器,它们都是 Ubuntu / Mint。如果这很重要,我的 .bashrc 文件中也有该行alias emacs='emacsclient -a "" -t'。几个月来我一直想弄清楚如何用鼠标滚动,但我似乎做不到,即使我在本地使用 Emacs。

每次我在终端中打开 Emacs 时,右侧都有一个滚动条,但它不起作用,因为您通常拖动的部分(滚动时移动的部分)填满了滚动条的整个高度,并且是不动的。

我看到很多人建议M-x mouse-wheel-mode。当我开始输入它时,tab complete 会向我显示完成列表,而这不在上面。此处接受的答案表明它已包含在内,并且默认情况下处于打开状态。如果这是真的,那么还有其他问题。在找到这个之前,我也尝试过.el为它找到一个,但也没有成功。

我已经(xterm-mouse-mode)开始工作了。这可能只是因为它向 Emacs 证明我有鼠标。

我不知道下一步该尝试什么。有任何想法吗?

4

3 回答 3

5

添加以下内容让我在终端 emacs 中滚动:

;;;; Mouse scrolling in terminal emacs
(unless (display-graphic-p)
  ;; activate mouse-based scrolling
  (xterm-mouse-mode 1)
  (global-set-key (kbd "<mouse-4>") 'scroll-down-line)
  (global-set-key (kbd "<mouse-5>") 'scroll-up-line)
  )
于 2020-06-08T16:21:34.100 回答
4

编辑 2:刚刚尝试emacs -Q -nw在 xterm 中运行。在这种情况下M-x xterm-mouse-mode,我可以使用鼠标滚轮滚动大缓冲区。所以这毕竟是可能的。如果没有进一步的信息,不能说为什么它对你不起作用。

原始答案: 据我了解,在终端中运行的emacs只能非常有限地使用鼠标,并且只能使用一些终端模拟器。xterm-mouse-mode可能会有所帮助,但即便如此,我认为您无法滚动,只需单击即可。

编辑:由于您正在 ssh-ing,您可以尝试在远程机器上使用 GUI 版本的 emacs,在通过 连接后ssh -x,或者通过在本地运行 emacs 并使用 tramp 进行 ssh 连接。您可以通过这种方式获得所有鼠标功能,不需要任何自定义调整。

于 2013-08-13T03:41:31.657 回答
0

在 macOS Mojave 上运行 Emacs 26.2 和 26.3 时,我已经能够使用以下 Elisp 代码激活鼠标滚动:

(unless (display-graphic-p)
  ;; activate mouse-based scrolling                                                                                                                                     
  (global-set-key (kbd "<mouse-4>") 'pel-scroll-down)
  (global-set-key (kbd "<mouse-5>") 'pel-scroll-up))

其中pel-scroll-uppel-scroll-down是调用具有显式参数值为 1 的向上滚动和向下滚动交互函数的命令。

只要 xterm-mouse-mode 处于活动状态,它就可以工作。
我通常还将一个键映射到 xterm-mouse-mode 以便能够快速打开和关闭它。

于 2020-05-13T21:56:35.903 回答