我一直在环顾四周,人们说放
set -g mouse-mode on
Run Code Online (Sandbox Code Playgroud)
应该让你在运行tmux时滚动终端输出.但是,在将它放入我的~/.tmux.conf
文件并说明tmux set -g mouse-mode on
在tmux会话中之后,没有任何变化.当我滚动时,我仍然在tmux之外,就像在vim中使用默认设置滚动一样.
有谁知道这是为什么?
Gra*_*ham 519
所以此选项已在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
Run Code Online (Sandbox Code Playgroud)
所以这就是我现在在我的.tmux.conf
文件中使用的内容
set -g mouse on
Run Code Online (Sandbox Code Playgroud)
Umu*_*rin 69
正如@ 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
Run Code Online (Sandbox Code Playgroud)
这将允许在窗格上滚动滚动,您将能够逐行滚动该窗格.
资料来源:https://groups.google.com/d/msg/tmux-users/TRwPgEOVqho/Ck_oth_SDgAJ
小智 56
只是快速向正在失去理智的其他人提出挑战:
https://github.com/tmux/tmux/blob/310f0a960ca64fa3809545badc629c0c166c6cd2/CHANGES#L12
所以这就是
:setw -g mouse
Run Code Online (Sandbox Code Playgroud)
loc*_*jay 30
这应该工作:
setw -g mode-mouse on
Run Code Online (Sandbox Code Playgroud)
然后资源然后配置文件
tmux source-file ~/.tmux.conf
Run Code Online (Sandbox Code Playgroud)
或杀死服务器
J-L*_*J-L 18
这行:
\nset -g mouse-mode on\n
Run Code Online (Sandbox Code Playgroud)\n在你的~/.tmux.conf
文件中将不起作用。
一方面,正确的设置是mode-mouse
,而不是mouse-mode
。
其次,它仅适用于旧版本tmux
(版本 2 之前的版本);您可以运行tmux -V
来查看您拥有的版本,但您也可以运行man tmux
来查看是否mode-mouse
是受支持的选项)。
第三,从技术上讲,该选项与( )man tmux
一起使用,而不是与( ) 一起使用,尽管我已经看到它与( 以及) 一起使用。mode-mouse
setw
set-window-option
set
set-option
set
setw
这些行应该有效:
\n如果您的版本tmux
足够新(即,如果tmux -V
显示版本 2 或更高版本),您可以将此行放入您的~/.tmux.conf
文件中:
set-option -g mouse on\n
Run Code Online (Sandbox Code Playgroud)\n但如果您使用旧版本的tmux
,请将这些行放入您的~/.tmux.conf
文件中:
set-window-option -g mode-mouse on\n\nset-option -g mouse-resize-pane on\nset-option -g mouse-select-pane on\nset-option -g mouse-select-window on\n
Run Code Online (Sandbox Code Playgroud)\n同样,如果您不确定要放入~/.tmux.conf
文件中的哪一行,请运行man tmux
并搜索mouse-mode
、mouse-resize-pane
、mouse-select-pane
和/或mouse-select-window
。如果找到它们,请使用这些选项(旧版本的选项tmux
)。
将这些行放入将允许您使用鼠标滚轮,它将允许您单击各个窗格来激活它们,并且将允许您只需通过单击并拖动其分割分隔符来调整窗格的大小。
\n您还可以使用鼠标进行复制和粘贴。但是,您可能会注意到,使用鼠标进行复制和粘贴可能无法像在控制台上通常那样进行。为了解决这个问题,我注意到SHIFT在使用鼠标的复制/粘贴功能时按住按键可以使它们再次正常工作。(在 MacOS 上,fn似乎比 更适合我SHIFT。)或者你可以学习tmux
的复制粘贴方法(我推荐)。
使用注意事项tmux
本机复制/选择/粘贴功能的注意事项:
就我个人而言,我觉得这些vi
键比默认键对我来说更有意义(例如,使用mode退出选择模式比使用模式+或+退出选择模式emacs
感觉更自然),所以我在我的vi
ENTERemacs
CTRLwALTw~/.tmux.conf
文件中包含以下内容:
# For vi-like keys in copy/paste/selection mode:\nset-window-option -g mode-keys vi\n
Run Code Online (Sandbox Code Playgroud)\n但是,我注意到在旧版本上tmux
,这条线不起作用,除非我也包含此行:
set-window-option -g mode-mouse on\n
Run Code Online (Sandbox Code Playgroud)\n很高兴知道: 有时,当您使用鼠标滚轮时,您会发现您的窗格/屏幕似乎被冻结或锁定(它不会响应键盘输入),并且不清楚该怎么办来解锁它。
\n它没有被锁起来。你很可能在tmux
选择模式。要摆脱它,请尝试以下方法之一:
vi
模式下工作。)emacs
模式下工作。)emacs
模式下工作。)emacs
模式下工作。)emacs
模式下工作。)vi
模式下工作,并且可能在emacs
,也可能在模式下最后,您可以尝试点击:
\nCTRL+ w\xc2\xa0 \xc2\xa0ENTER
\n或者:
\nEsc\xc2\xa0 \xc2\xa0q
\n有可能,这会让您回到正常模式,键盘再次响应。
\n使用鼠标vim
:
我发现将此行放入我的~/.vimrc
文件中:
:set mouse=a\n
Run Code Online (Sandbox Code Playgroud)\n似乎与 配合得很好tmux
,比这条线更好:
:set mouse=r\n
Run Code Online (Sandbox Code Playgroud)\n我无法真正解释其中的差异;如果您是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
!
Ale*_*sco 15
正如@ Graham42所说,从版本2.1开始,鼠标选项已重命名,但您可以将鼠标与任何版本的tmux一起使用,将其添加到〜/ .tmux.conf中:
is_older=$([[ $(tmux -V | cut -d' ' -f2) < 2.1 ]] && echo true || echo false)
if-shell "$is_older" "set -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"
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
小智 14
粘贴在〜/ .tmux.conf中
set -g mouse on
Run Code Online (Sandbox Code Playgroud)
并在终端上运行
tmux source-file ~/.tmux.conf
Run Code Online (Sandbox Code Playgroud)
根据您当前的 Tmux 版本,您仍然可以使用设置选项的魔鬼逻辑:请参阅我之前的答案。
但是从 Tmux v1.7 开始,set-option
添加了“-q”以消除错误并且不打印任何内容(请参阅更改日志)。我建议使用此功能,它更具可读性且易于扩展。
将此添加到您的~/.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
Run Code Online (Sandbox Code Playgroud)
重新启动 tmux 或source-file
您的新.tmux.conf
旁注:如果人们喜欢这个答案,我愿意删除我的旧答案
归档时间: |
|
查看次数: |
107397 次 |
最近记录: |