我一直在环顾四周,人们说
set -g mouse-mode on
应该让您在运行 tmux 时滚动浏览终端输出。但是,在将其放入我的~/.tmux.conf
文件并tmux set -g mouse-mode on
在 tmux 会话中说之后,没有任何变化。当我滚动时,我仍然在 tmux 之外,就像使用默认设置在 vim 中滚动一样。
有谁知道这是为什么?
我一直在环顾四周,人们说
set -g mouse-mode on
应该让您在运行 tmux 时滚动浏览终端输出。但是,在将其放入我的~/.tmux.conf
文件并tmux set -g mouse-mode on
在 tmux 会话中说之后,没有任何变化。当我滚动时,我仍然在 tmux 之外,就像使用默认设置在 vim 中滚动一样。
有谁知道这是为什么?
所以这个选项在 2.1 版(2015 年 10 月 18 日)中被重命名
从变更日志:
Mouse-mode has been rewritten. There's now no longer options for:
- mouse-resize-pane
- mouse-select-pane
- mouse-select-window
- mode-mouse
Instead there is just one option: 'mouse' which turns on mouse support
所以这就是我现在在我的.tmux.conf
文件中使用的
set -g mouse on
正如@Graham42 所指出的,鼠标选项在 2.1 版中已更改。现在滚动需要您先进入复制模式。要启用几乎与 2.1 之前相同的滚动,请将以下内容添加到您的.tmux.conf
.
set-option -g mouse on
# make scrolling with wheels work
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'"
bind -n WheelDownPane select-pane -t= \; send-keys -M
这将启用悬停在窗格上的滚动,您将能够逐行滚动该窗格。
来源:https ://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ
只是对现在失去理智的其他人的快速提醒:
https://github.com/tmux/tmux/blob/310f0a960ca64fa3809545badc629c0c166c6cd2/CHANGES#L12
所以这只是
:setw -g mouse
这应该工作:
setw -g mode-mouse on
然后资源然后配置文件
tmux source-file ~/.tmux.conf
或者杀死服务器
粘贴到 ~/.tmux.conf
set -g mouse on
并在终端上运行
tmux source-file ~/.tmux.conf
正如@Graham42 所说,从 2.1 版开始,鼠标选项已重命名,但您可以将鼠标与任何版本的 tmux 一起使用,并将其添加到您的 ~/.tmux.conf 中:
Bash贝壳:
is_pre_2_1="[[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"
Sh(伯恩壳)壳:
is_pre_2_1="tmux -V | cut -d' ' -f2 | awk '{print ($0 < 2.1) ? "true" : "false"}'"
if-shell "$is_pre_2_1" "setw -g mode-mouse on; set -g mouse-resize-pane on;\
set -g mouse-select-pane on; set -g mouse-select-window on" "set -g mouse on"
希望这可以帮助
您仍然可以根据您当前的 Tmux 版本使用设置选项的魔鬼逻辑:请参阅我以前的答案。
但是从 Tmux v1.7 开始,set-option
添加了“-q”以消除错误并且不打印任何内容(请参阅changelog)。我推荐使用这个特性,它更具可读性和易于扩展。
将此添加到您的~/.tmux.conf
:
# from v2.1
set -gq mouse on
# before v2.1
set -gq mode-mouse on
set -gq mouse-resize-pane on
set -gq mouse-select-pane on
set -gq mouse-select-window on
重新启动 tmux 或source-file
你的新.tmux.conf
旁注:如果人们更喜欢这个答案,我愿意删除我的旧答案
这一行:
set -g mouse-mode on
在您的~/.tmux.conf
文件中将不起作用。
一方面,正确的设置是mode-mouse
(不是mouse-mode
)。
其次,它仅适用于旧版本tmux
(pre-version 2;您可以运行tmux -V
以查看您拥有的版本,但您也可以运行man tmux
以查看是否mode-mouse
受支持的选项)。
第三,从技术上讲man tmux
,该mode-mouse
选项与setw
( set-window-option
) 一起使用,而不与set
( set-option
) 一起使用,尽管我已经看到它与set
(以及setw
) 一起使用。
这些行应该有效:
如果您的版本tmux
足够新(也就是说,如果tmux -V
显示版本 2 或更新版本),您可以将这一行放入您的~/.tmux.conf
文件中:
set-option -g mouse on
但是,如果您使用旧版本的tmux
,请将这些行放入您的~/.tmux.conf
文件中:
set-window-option -g mode-mouse on
set-option -g mouse-resize-pane on
set-option -g mouse-select-pane on
set-option -g mouse-select-window on
同样,如果您不确定要在~/.tmux.conf
文件中放入哪一行,请运行man tmux
并搜索mouse-mode
、mouse-resize-pane
、mouse-select-pane
和/或mouse-select-window
。如果您找到它们,请使用这些选项(旧版本的选项tmux
)。
将这些行放入将允许您使用鼠标滚轮,它将允许您单击各种窗格以激活它们,并且它允许您通过单击并拖动它们的拆分器分隔符来调整窗格的大小。
您也可以使用鼠标进行复制和粘贴。但是,您可能会注意到,使用鼠标进行复制和粘贴可能不像在控制台上通常那样工作。为了解决这个问题,我注意到SHIFT在使用鼠标的复制/粘贴功能时按住键会使它们再次正常工作。或者你可以学习tmux
复制粘贴的方法(我推荐)。
关于使用tmux
的本机复制/选择/粘贴功能的说明:
就个人而言,我觉得这些vi
键对我来说比默认键更有意义emacs
(例如,使用模式退出选择模式比使用模式 + 或 + 更自然),所以我的文件中有这个:vi
ENTERemacs
CTRLwALTw~/.tmux.conf
# For vi-like keys in copy/paste/selection mode:
set-window-option -g mode-keys vi
但是,我注意到在旧版本上tmux
,此行将不起作用,除非我还包含以下行:
set-window-option -g mode-mouse on
很高兴知道: 有时,当您使用鼠标的滚轮时,您会发现您的窗格/屏幕似乎被冻结或锁定(它不会响应键盘输入),并且不清楚该怎么做解锁它。
它没有上锁。您很可能处于tmux
的选择模式。要摆脱它,请尝试以下方法之一:
vi
模式下工作。)emacs
模式下工作。)emacs
模式下工作。)emacs
模式下工作。)emacs
模式下工作。)vi
模式下工作,也可能在emacs
模式下工作。)最终,您可以尝试点击:
CTRL+w ENTER
或者:
Esc q
很有可能,这将使您回到键盘再次响应的正常模式。
使用鼠标vim
:
我发现将这一行放在我的~/.vimrc
文件中:
:set mouse=a
似乎与tmux
, 比这行更好:
:set mouse=r
我无法真正解释其中的区别。如果您是vim
用户,请尝试一下,看看哪种设置最适合您。
如果您需要测试这些tmux
选项,您可能会发现自己正在编辑文件、~/.tmux.conf
退出. 这可能会成为一个乏味的过程,因此如果您想要一些变通方法,这里有一些选项:tmux
tmux
选项 1: 编辑(并保存)~/.tmux.conf
文件后,运行以下命令(在 中tmux
):
CTRL+B :source-file ~/.tmux.conf
ENTER
这将立即将~/.tmux.conf
文件中的新设置应用到当前tmux
会话中,而无需重新启动tmux
.
选项 2: 如果您在tmux
会话中,您可以通过在 Unix shell 提示符下运行以下命令来临时打开/关闭该会话的选项:
tmux set-option -g mouse on
tmux set-window-option -g mode-keys vi
选项 3:tmux
您还可以在会话 中临时打开/关闭选项:
CTRL+B :set-option -g mouse on
ENTER
CTRL+B :set-window-option -g mode-keys vi
ENTER
祝你好运,玩得开心tmux
!
试试这个。它适用于我的电脑。
set -g mouse on
Ctrl+B然后设置鼠标。-g
不再需要。