【问题标题】:GNU Screen: Reverse focus tabbingGNU 屏幕:反向焦点选项卡
【发布时间】:2015-10-24 12:36:47
【问题描述】:

是否可以绑定Ctrl+a Shift+Tab切换焦点到上一个窗口列表(很像 Ctrl+a p 但改变焦点)?

具体来说,我想从第一个跳到最后一个。例如,这是一个屏幕配置文件:

# Vertical split with two on right
#
# +---+---+
# |   |   |
# |   |---|
# |   |   |
# +---+---+
#
split -v
screen bash
title "main"
focus
split
screen bash
title "script"
focus
screen bash
title "interpreter"
focus left

# ctrl+a navigating regions
bind j focus down
bind k focus up
bind h focus left
bind l focus right

焦点从左上角的屏幕开始。我想直接跳到右下角。我可以通过按两次 Ctrl+a Tab 来做到这一点。是否有一个命令,如果有,我怎么能将它绑定到 Ctrl+a Shift+Tab ?

编辑

刚刚发现 Ctrl+a Ctrl+i 也切换到下一个窗口(奇怪不是info)。我在Screen version 4.01.00devel (GNU) 2-May-06

很好的解决方法

将以下内容添加到您的屏幕配置文件(或~/.screenrc

## ctrl+a navigating regions
bindkey "^j" focus down
bindkey "^k" focus up
bindkey "^h" focus left
bindkey "^l" focus right

现在您可以通过按住 Ctrl + h/j/k/ 快速移动l 采用vim-esque 风格。

【问题讨论】:

    标签: gnu-screen


    【解决方案1】:

    您要查找的命令是focus prev

    不幸的是,没有办法绑定 Shift+Tab,因为bind 不允许修饰键,而 Tab 是相当于 Ctrl+i (这也解释了为什么它绑定到 focus 而不是 info),所以你必须将它绑定到不同的键。

    【讨论】:

      【解决方案2】:

      这是我的 ~/.screenrc

      bindkey "^k" focus prev
      bindkey "^l" focus next
      

      如果 ~/.screenrc 不存在则需要激活:Ctrl+a, Shift+:source ~/.screenrc

      那么我们可以:

      Ctrl+l循环到下一个分屏

      Ctrl+k 循环到上一个分屏!

      更新:

      使用此屏幕配置一天后,我发现我以某种方式弄乱了其他键盘快捷键。例如,当我在 Vim 中按“Esc”退出编辑模式时,屏幕会聚焦在前一个屏幕上!

      所以我取消了我创建的快捷方式,退出所有分屏,删除 ~/.screenrc 文件并重新开始。

      说实话,考虑到搞乱其他快捷键的后果,我可以只使用 Crtl-a、Shift 来循环分屏!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-24
        • 1970-01-01
        • 1970-01-01
        • 2016-05-09
        • 1970-01-01
        • 2022-01-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多