#1 楼
Ctrl-b然后[然后您可以使用普通的导航键来滚动(例如,向上箭头或PgDn)。按q退出滚动模式。或者,您也可以按Ctrl-b PgUp键直接进入复印模式并向上滚动一页(这听起来像您大多数时候都想要的那样)
在
vi
模式下(请参见下文),您还可以使用Shift-k和Shift-j逐行滚动页面(如果您已经处于滚动模式)。 手册页中的摘录:
可以使用以下组合键从附加的客户端控制tmux:前缀键,默认情况下为'C-b'(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
再加上一堆。请注意,如果将
C-b
用作命令键,则必须按两次C-b
才能向上翻页。有关在复制模式命令前加上重复计数的信息,请参见手册页。可以使用Ctrl-b设置键绑定模式,然后使用
:set-window-option mode-keys emacs
或
vi
。评论
我认为C-b =默认为选择缓冲区。您是说C-b [(默认为复制模式)吗?另外,您也可以使用C-b PageUp直接在上一页上启动复制模式(当您知道要查看/复制的内容已经滚动到当前页面时非常方便)。
–克里斯·约翰森(Chris Johnsen)
2010年11月11日5:55
正确,我的tmux没有滚动模式。您需要C-b [进入复制模式,然后使用emacs或vi键绑定进行滚动。滚动似乎要采取很多步骤,但是tmux的好处仍然胜过这些烦恼。我在Macbook上,没有PageUp键:-\。 (而且,丹尼斯,我该如何像降价一样制作带有减价的键?)
–chadoh
2010年11月11日17:11
@chadoh:在您的Macbook上尝试:Home:fn-LeftArrow;结束:fn-RightArrow;上一页:fn-UpArrow; Page Down:fn-DownArrow。制作键帽: Ctrl
–丹尼斯·威廉姆森
2010年11月11日,18:43
在Macbook上,fn + up会直接进入终端应用程序,永远不会碰到tmux
–泰勒
2011年4月11日17:57
在Macbook上,如果您处于滚动模式,则可以使用fn + Shift + LeftArrow向上滚动页面。
–尼克·哈蒙德(Nick Hammond)
13年5月18日在17:51
#2 楼
好吧,您应该考虑设置滚动的正确方法:在您的
~/.tmux.conf
中添加set -g mouse on #For tmux version 2.1 and up
或
set -g mode-mouse on #For tmux versions < 2.1
它对我在窗口和窗格中都有效。现在,tmux非常完美。
实用的tmux包含有关tmux.conf文件的更多信息。
评论
当我这样做时,鼠标单击和滚动会导致乱码被打印到我正在使用tmux的终端的提示区域。有任何想法吗?
– ely
13年8月1日在15:38
将来的tmux鼠标用户:为了避免在键入之前再次滚动到底部,您可以按q退出滚动模式。
–詹·托马斯(Jezen Thomas)
2014年1月7日在5:11
鼠标滚动与此可以很好地工作,但不幸的是,我不能再使用鼠标来选择文本了。使用Tilda和tmux。
–friederbluemle
15年3月17日在3:40
重要说明:此设置中断突出显示和复制文本。使用Shift +单击以维护此功能。
– Shadoninja
16年5月4日在22:50
1)我们不能再通过点击来选择文本2)我们无法滚动到vim
– pltrdy
17年11月27日在15:54
#3 楼
来自我的.tmux.conf文件:# Sane scrolling
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
这将启用本机xterm滚动。
评论
您能解释一下这到底是什么吗?
–伊沃
2011年10月31日下午6:25
我不知道它是做什么的,但这纯属天才。最后,tmux滚动有效,是的!
–自己
2011-11-28 21:26
这在OS X上对我不起作用...
–尼克
2012年4月17日下午13:56
解决方案:gist.github.com/1297707
–尼克
2012年4月17日15:25
如果您对togdon的答案感到困惑,请查看此内容:superuser.com/questions/310251/…IMO,如果您只有一个窗格,则此解决方案比公认的答案更好。
– thameera
13年4月16日在7:48
#4 楼
对于最新的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
评论
这怎么不是被接受的答案?
–马塞尔
16年12月21日在20:28
这个答案中关于“不足以简单地重新加载.tmux.conf帮助”并为我退出所有tmux会话(也许kill-server可以工作)的说明有所帮助!
–科林D
17年1月25日在18:05
您能否详细说明这是如何工作的?
–寡核苷酸
17年7月19日在7:31
当单击/滚动/等鼠标时,似乎可以转发鼠标事件。如果窗格处于任何间接/缓冲状态(仅是复制模式?),并且鼠标按下按钮,滚动等。最后一部分介绍了通过首先切换到间接模式在直接模式下进行滚动。如果不是这些控件,则终端可能会将事件解释为历史记录滚动(如果有的话)。话虽如此,我不知道我是否能够同时使寻呼机和Vim正确滚动,并且我尝试了一些代码片段。
– John P
18年1月2日在14:13
@chefarov-在对另一个答案的评论中,您可以在鼠标模式打开时通过Shift +单击来执行此操作。
–布兰登·摩尔(Brendan Moore)
19 Mar 27 '19 at 13:23
#5 楼
就我而言,只需在OSX上选择opt + UpArrow和opt + DownArrow。评论
@ fixer1234这个问题根本没有提到Linux。 tmux也可以在OS X上使用。
–slhck
15年4月17日在11:51
@slhck:谢谢。太眼花ble乱;散光开始了。我误读了tmux标签作为linux标签。
–fixer1234
2015年4月17日在16:07
#6 楼
这是我使其工作的方式,也是我认为它比默认方法更好的原因。要尝试一下,请将所有代码节放在
~/.tmux.conf
中。第1步。更改前缀键,这样您就不必再伸手了。 “ B”似乎是一个闭合键,但是它位于两个食指的中间(分别位于“ F”和“ J”处)。由于该快捷方式对于tmux是必不可少的,因此Cj更好,因为它涉及零手运动(除了敲键)。
set -g prefix C-j
unbind C-b
bind C-j send-prefix
步骤2。'S'(进入复制模式)是:1)关闭(与上述原因相同),2)涉及另一只手(比较:装箱中的1-2,或使用
ls
命令查看目录中的文件),以及3)可以被认为是“滚动”的助记符(尽管复制模式不只是滚动)。bind s copy-mode
步骤3。最后一部分,实际的滚动。为此,Emacs用户熟悉“ P”和“ N”。它们紧密,直观(键盘上的“ P”上方是“ N”)和助记符(“上一个”和“下一个”)。如果您只是在Emacs中进行了一些滚动,然后转到tmux,则拥有这些快捷键是很有意义的。
但是,我发现'I'和'K'甚至更好-它们甚至比“ P”和“ N”更近,直观(出于相同的原因);至于助记符-滚动是很常见的事情,助记符并不重要,因为快捷键很快就会绕过您的大脑并进入肌肉记忆。
bind -t emacs-copy 'p' scroll-up
bind -t emacs-copy 'n' scroll-down
bind -t emacs-copy 'i' scroll-up
bind -t emacs-copy 'k' scroll-down
#7 楼
我为此进行了很多搜索,并且本详细指南中提到了对我来说最好的解决方案: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 +放大每个窗格即可。
鼠标模式缺少的一个重要细节是在选择要复制的区域之前按Shift。这会将其复制到传统的终端缓冲区,而不是tmux复制缓冲区。 (https://wiki.archlinux.org/index.php/Tmux#Scrolling_issues)
#8 楼
我建议尝试使用tmux-better-mouse-mode插件来解决大多数与tmux鼠标有关的问题。它与Tmux 2.1+和新的
set-option -g mouse on
方法兼容。评论
谢谢,这对我来说是最好的解决方案。它涵盖了我手动添加的所有鼠标滚轮绑定(因此我不再需要它们了),并且我非常想要两个杀手功能:scroll-with-with-changing-pane与scroll-without的组合更改窗格并模拟滚动鼠标无备用缓冲区。现在我的tmux使用经验是更好的方法。
–selurvedu
18年6月5日在11:02
#9 楼
这对我有用:vim ~/.tmux.conf
set -g mode-mouse on ###Insert this setting with vim, then source the file.
tmux source-file ~/.tmux.conf
评论
从2.1版(2015年10月18日)开始,该选项应设置为-g mouse on
– naoko
18/12/27在0:07
+1用于实际提供配置文件的完整路径。否则,@ chaiyachaiya的答案将是完美的。
–约翰·麦克法兰
19年8月24日在8:06
#10 楼
唯一适合我的方法是将以下内容放入~/.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"
(您可能需要重新启动才能生效)
更新:
我发现,如果您将“腻子连接”>“数据”>“终端类型”中的设置从“ xterm”更改为“ putty”(用于解决某些格式问题),则此解决方案将停止工作。
更新2:
如果希望将“ putty”作为终端类型,请使用此选项:
set -g terminal-overrides "putty*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC"
评论
这实际上也解决了我在iPhone应用程序中的滚动问题。
– NathaneilCapital
16年6月17日在17:20
我尝试过的最新方法不再起作用,但这有效。奇怪。设置-ga终端重写',xterm *:smcup @:rmcup @'
–啄
16年7月5日在5:30
#11 楼
FWIW,在Macbook / OSX Mojave上,在ctrl+[
执行以下操作后:up arrow
用于排列down arrow
用于排列向下fn + up arrow
用于向上翻页fn + down arrow
用于向下翻页q退出查看模式
#12 楼
Ctrl + A-开始滚动
Ctrl + C-停止滚动
评论
这篇文章太短,无法有效回答问题。它为已经发布的答案添加了很少的新信息。它没有说明如何滚动(仅介绍了如何在复制模式下更改)。另外,默认的命令前缀键组合为Ctrl-B(Ctrl-A是GNU屏幕的默认键)。
– Anthony Geoghegan
16-10-26在8:50
不知道这个答案的作者是否理解这个问题。这是无益的,而且是错误的。
– Vik
17 Mar 30 '17 at 7:53
我一直在寻找如何停止滚动这么长时间,感谢您指出!
–PERR0_HUNTER
17年4月9日在17:12
评论
您关心什么开销?复制模式是查看历史记录的方式(也可以选择复制其中的内容)。对我来说,您可以按f7键进入滚动模式,按q键退出
在@chaiyachaiya的答案上设置-g模式-鼠标对我来说是赢家
只需运行:echo“ set -g mouse on” >>〜/ .tmux.conf,您就可以滚动。