GNU屏幕:反向焦点标签

时间:2015-10-24 12:36:48

标签: gnu-screen

是否可以绑定 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风格。

2 个答案:

答案 0 :(得分:3)

您正在寻找的命令是focus prev

不幸的是,由于bind不允许使用修饰键, Tab >相当于 Ctrl + i (这也解释了为什么它绑定到focus而不是info),所以你必须绑定它是一个不同的关键。

答案 1 :(得分:0)

这是我的〜/ .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来切换分屏显示!