GNU屏幕:反向焦点标签

问题描述 投票:3回答:2

是否可以绑定Ctrl +一个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 + Shift + Tab?

Edit

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

Good workaround

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

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

现在,您可以通过按住vim-esque样式的Ctrl + h / j / k / l快速拉链。

gnu-screen
2个回答
3
投票

你正在寻找的命令是focus prev

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


0
投票

这是我的〜/ .screenrc

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

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

然后我们可以:

按Ctrl + 1循环到下一个分屏

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

更新:

使用这个屏幕配置一天,我发现我不知何故弄乱了其他键盘快捷键。例如,当我在Vim中按“Esc”退出编辑模式时,屏幕将重点放在前一个屏幕上!

所以我取消了我创建的快捷方式,从所有拆分屏幕中删除,删除〜/ .screenrc文件并重新开始。

说实话,我可以忍受只使用Ctrl-a,Shift来循环切换屏幕,考虑到弄乱其他快捷键的后果!

© www.soinside.com 2019 - 2024. All rights reserved.