当前位置:  开发笔记 > 运维 > 正文

跨不同的tmux版本启用鼠标支持

如何解决《跨不同的tmux版本启用鼠标支持》经验,为你挑选了1个好方法。

我管理了几台Linux机器,其中一些在存储库中有tmux 2.1版本,另一些在tmux版本低于2.1的情况下.我使用鼠标模式,据我所知,在tmux 2.1中,启用鼠标模式的选项已更改为:

set -g mouse on

由于我使用不同的发行版,每个发行版都有不同版本的tmux,我想制作一个.tmux.conf文件,根据版本启用相应的鼠标选项.

所以,我在.tmux.conf中添加了以下内容:

# Mouse Mode
if-shell "[[ `tmux -V |cut -d ' ' -f2` -ge 2.1 ]]" 'set -g mouse on'
if-shell "[[ `tmux -V |cut -d ' ' -f2` -lt 2.0 ]]" 'set -g mode-mouse on'
if-shell "[[ `tmux -V |cut -d ' ' -f2` -lt 2.0 ]]" 'set -g mouse-resize-pane on'
if-shell "[[ `tmux -V |cut -d ' ' -f2` -lt 2.0 ]]" 'set -g mouse-select-pane on'
if-shell "[[ `tmux -V |cut -d ' ' -f2` -lt 2.0 ]]" 'set -g mouse-select-window on'

不幸的是,这不起作用.tmux不显示任何错误,但它也不启用鼠标模式.

我的逻辑中是否存在阻止此配置工作的错误?



1> 小智..:

基于最后两个答案,但替换shell命令如下.将其添加到主配置:

if-shell "tmux -V |awk ' {split($2, ver, \".\"); if (ver[1] < 2) exit 1 ; else if (ver[1] == 2 && ver[2] < 1) exit 1 }' " 'source .tmux/gt_2.0.conf' 'source .tmux/lt_2.1.conf'

这使用awk来拆分版本号,这个代码的更清晰版本是:

split($2, ver, ".")  #Split the second param and store it in the ver array
if ver[1] < 2) # if it's less than v2.0
   exit 1
else
   if (ver[1] == 2) # if it's version 2.n look at next number
       if (ver[2] < 1) # If the second number is less than 1 (2.1)
          exit 1
# else we exit 0

然后将配置拆分为两个配置文件.

lt_2.1.conf 包含

set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

gt_2.1.conf 包含

set -g mouse-utf8 on
set -g mouse on

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有