首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tmux:禁止切换到特定窗格

Tmux:禁止切换到特定窗格
EN

Stack Overflow用户
提问于 2018-07-08 14:59:45
回答 1查看 36关注 0票数 0

我想要删除使用ctrl+b arrow-keys选择的窗格。这是因为我有一个使用tmux clock-mode -t 2显示时间的窗格,我永远不想切换到那个窗格。

EN

回答 1

Stack Overflow用户

发布于 2018-07-08 22:13:36

这个解决方案类似于我在姊妹网站unix.stackexchange上回答的一个问题,并不完美。

tmux为每个窗格都有一个标志,表明它是否处于某种模式。例如,时钟模式下窗格的display -p #{pane_in_mode}将打印1。不幸的是,你不能区分复制模式和时钟模式。但是,如果您不太可能一次有多个窗格处于一种模式,您可以编写一个小的shell脚本来拦截适当的绑定,并测试所产生的移动是否以某种模式的窗格结束。如果是这样的话,脚本会重复移动,可能会移动到下一个窗口。

在您的路径中创建以下文件mytmux并将其设置为可执行文件(chmod +x mytmux):

代码语言:javascript
复制
#!/bin/bash
# https://stackoverflow.com/a/51232832/5008284
noclock(){
        tmux "$@"
        inmode=$(tmux display -p '#{pane_in_mode}')
        [ "$inmode" = 1 ] && tmux "$@"
        exit 0
}
case $1 in
-noclock)shift
        : ${1?select-pane cmd and args}
        noclock "$@" ;;
esac

然后在~/.tmux.conf中设置以下绑定

代码语言:javascript
复制
bind-key    -T prefix o     run-shell 'mytmux -noclock select-pane -t :.+'
bind-key    -T prefix l     run-shell 'mytmux -noclock select-pane -l'
bind-key -r -T prefix Up    run-shell 'mytmux -noclock select-pane -U'
bind-key -r -T prefix Down  run-shell 'mytmux -noclock select-pane -D'
bind-key -r -T prefix Left  run-shell 'mytmux -noclock select-pane -L'
bind-key -r -T prefix Right run-shell 'mytmux -noclock select-pane -R'

例如,如果您想要处理多个会话,则需要扩展它。我把select-pane -l放在绑定中,但这并不有用,因为如果它重复,它就会回到你开始的地方。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51229587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档