软件用户
2010-11-10 18:40:45 +0000 2010-11-10 18:40:45 +0000
1389

如何在tmux中滚动?

我刚刚开始使用tmux,我很喜欢它,但我需要能够在我打开的缓冲区/面板/窗口中滚动。我不关心它是否能用鼠标操作。当我搜索tmux的man页时,我发现只有两个例子显示 "滚动 "一词,而且都与复制模式有关。有没有一种方法可以在没有进入复制模式的情况下滚动?

答案 [12]

1685
2010-11-11 03:02:16 +0000

按Ctrl-b,然后按[然后你可以使用正常的导航键来滚动(例如:向上箭头或PgDn)。按q键退出滚动模式。

另外,你也可以按Ctrl-b PgUp键直接进入复制模式,向上滚动一页(听起来你大部分时间都是这么想的)

vi模式下(见下图),你也可以用Shift-k和Shift-j逐行滚动页面(如果你已经在滚动模式下)。

摘自man page:

tmux可以通过使用前缀键组合键,默认是C-b(Ctrl-b),后面是命令键,可以从附加的客户端控制。注意,如果你用它来翻页,你必须按两次C-b,因为C-b被绑定为命令键。请参阅MAN页面,在复制模式命令前加上重复数。

你可以用Ctrl-b设置键绑定模式,然后按

The default command key bindings are:

[ Enter copy mode to copy text or view the history.

Function vi emacs
-------- -- -----
Half page down C-d M-Down
Half page up C-u M-Up
Next page C-f Page down
Previous page C-b Page up
Scroll down C-Down or C-e C-Down
Scroll up C-Up or C-y C-Up
Search again n n
Search again in reverse N N
Search backward ? C-r
Search forward / C-s

vi

1685
335
2012-11-25 13:05:29 +0000

好吧,你应该考虑一下设置滚动的正确方法:在你的tmux.conf

set -g mouse on #For tmux version 2.1 and up
set -g mode-mouse on #For tmux versions < 2.1

&001

在windows和panes中,对我来说是有效的。 实用的tmux有更多关于tmux.conf文件的信息。

335
147
2011-08-22 20:49:40 +0000

从我的.tmux.conf中:

# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

这可以实现原生的xterm滚动。

147
63
2015-12-01 16:09:27 +0000

对于最新的 tmux 2.1,要用鼠标滚动,正确的答案是:

set -g mouse on
" sane scrolling:
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'"

,光是重新加载你的.tmux.conf是不够的,你需要重新启动你的tmux,例如:tmux kill-server && tmux

摘自 https://github.com/tmux/tmux/issues/145

63
16
2015-04-17 03:43:47 +0000

在我的情况下,只需在OSX上选择+UpArrow,在OSX上选择+DownArrow。

16
12
2013-06-21 15:33:39 +0000

这是我做出来的方法,以及我认为比默认的方法好的原因。

要试一试,把所有的代码部分都放到~/.tmux.conf里。

第一步,把所有的代码部分都放到ls里。改一下前缀键,这样你就不用达到一个位了。'B'看似是个近似键,但它在两个食指中间(分别在'F'和'J'处)。因为这个快捷键在tmux中是必不可少的,所以C-j要好得多,因为它涉及到的手部动作为零(除了击键外)。

set -g prefix C-j
unbind C-b
bind C-j send-prefix

第二步。'S'(进入复制模式)是:1)关闭(同上的原因相同),2)涉及到另一只手(比较:拳击中的1-2,或者是查看目录中的文件的&007命令),3)可以看作是 "滚动 "的口诀(虽然复制模式不只是滚动)。最后一部分,实际的滚动。对于Emacs用户来说,'P'和'N'对于这个目的来说是很熟悉的。它们很接近,很直观('P'在键盘上的'N'上面),而且是记忆性的("上一个 "和 "下一个")。如果你只是在Emacs中做了一些滚动,然后转到tmux,有这些快捷键是有意义的。

不过,我发现'I'和'K'更好--它们比'P'和'N'更接近,也更直观(原因相同);至于记忆符--由于滚动是如此常见的事情,记忆符其实并不重要,因为这些快捷键很快就会绕过你的大脑,进入肌肉记忆。

12
8
2016-12-07 16:34:30 +0000

它兼容Tmux 2.1+和新的set-option -g mouse on方法。

8
8
2016-03-31 00:42:33 +0000

我找了很多关于这个问题的资料,对我来说,最好的解决方法是在这个详细的指南中提到的 http://tangledhelix.com/blog/2012/07/16/tmux-and-mouse-mode/

在 ~/.tmux 中添加这些绑定。 conf:

set -g mode-mouse on

unbind +
bind + \
  new-window -d -n tmux-zoom 'clear && echo TMUX ZOOM && read' \;\
  swap-pane -s tmux-zoom.0 \;\
  select-window -t tmux-zoom

unbind -
bind - \
  last-window \;\
  swap-pane -s tmux-zoom.0 \;\
  kill-window -t tmux-zoom

实现了上述方法后,你也可以通过使用Prefix** +*来从窗口中的每个窗格中复制。这将复制到传统的终端缓冲区,而不是tmux复制缓冲区。 https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues )

8
7
2015-10-28 10:59:33 +0000

唯一对我有效的是在~/.tmux.conf

# Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right
set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

中加入以下内容(你可能需要重新启动才能生效)。

更新2:*

如果你想把 "putty "作为你的终端类型,请使用这个设置: set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"

7
6
2017-01-04 20:22:53 +0000

这对我来说是有效的:

vim ~/.tmux.conf
set -g mode-mouse on ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
6
4
2019-09-22 02:10:00 +0000

FWIW,在macbook/OSX Mojave上,在ctrl+[后做:

  • up arrow为上行
  • down arrow为下行
  • fn + up arrow为上行
  • fn + down arrow为下行
  • &007为上行
  • &007为下行
  • q退出查看模式
4
-2
2016-10-26 07:55:46 +0000
  • Ctrl + A - 开始滚动
  • Ctrl + C - 停止滚动。
-2