Emacs如何向上滚动其他窗口?

48

在Emacs中,我们可以使用某些命令滚动非活动窗口。

但是手册中并没有列出所有细节。

C-M-v 可以向下滚动其他窗口。

我的意图是向上滚动其他窗口,我应该如何做到这一点?

6个回答

58

尝试使用C-M-S-v,它是scroll-other-window-down

你可以通过执行C-h bdescribe-bindings)来查找这样的键绑定,它会将*Help*缓冲区填充为当前缓冲区的所有键绑定和相关命令的列表。在其中快速搜索scroll-other,可以找到你提到的绑定,以及我列出的一个。


5
我尝试使用command + meta + shift + v组合键,但另一个窗口没有向上滚动。我正在终端中使用emacs 24.3(mac os x)。原帖作者想知道如何将另一个窗口向上滚动,而不是向下滚动。 - user798719
6
在终端(确切地说是iterm2)中,看起来你无法使用“command shift meta v”命令,尽管这是正确的答案。在Mac上,我必须使用“function + up_arrow”来向上滚动另一个窗口,“function + down_arrow”也可以向下滚动另一个窗口。 - user798719
感谢@user798719,我正好遇到了同样的问题。 - JW.
1
你们是否为终端绑定了函数+箭头的功能?在macOS默认终端中,默认情况下无法使用该功能。 - h3dkandi
@user798719 尝试使用 C-u - C-M-v。参见:https://dev59.com/zmkv5IYBdhLWcg3w4kl2#60497723 - Flux

36

在许多终端中,你可以使用M-PageUpM-PageDn来滚动另一个窗口。如果你已经习惯使用PageUp/PageDn进行滚动,这非常方便。


到目前为止,最好的选择 - Yuri Ghensev
1
值得一提的是,M-PageUp(即M-<prior>)和M-PageDown(即M-<next>)的默认绑定是scroll-other-windowscroll-other-window-down。请参考此链接了解如何重新绑定:https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-Rebinding.html#Init-Rebinding - Lorem Ipsum

10

您也可以向 C-M-v 输入负数参数。 几乎可以使用任意修饰键的负数参数。 在这种情况下,您可以输入 C-M-- C-M-v


1
每次都必须提供负参数,例如如果要滚动超过一页。这需要多输入一些内容。 - user650654

4
我每天都使用这个工具:
(define-key global-map [(meta up)] '(lambda() (interactive) (scroll-other-window -1)))
(define-key global-map [(meta down)] '(lambda() (interactive) (scroll-other-window 1)))

1
非常实用。我已经将这些 lambda 绑定到 C-M-<next> 和 C-M-<prior> 上,因为 scroll-other-window 和 scroll-other-window-down 已经绑定到了 C-M-<prior> 上,而 M-<prior> 和 M-up 以及 M-down 则被 org-mode 重复使用了。 - Jérôme Radix

3

向下滚动,(scroll-other-window)

向上滚动,(scroll-other-window '-)

scroll-other-window 是 Emacs 的原生 C API,所以它应该可以直接使用。请查看其文档。

可自由为它们分配快捷键


2
你可以执行C-u - C-M-v命令(即使用ARG参数的scroll-other-window),如果C-M-S-v命令(即scroll-other-window-down)在终端中使用Emacs时无法正常工作,这种情况可能会发生。
C-h f scroll-other-window摘录:
负的ARG值意味着向下滚动。如果ARG是原子符号“-”,则向下滚动近全屏幕。

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