big*_*ums 6 shortcut-keys gnu-screen
我是 GNU Screen 的新手,到目前为止我很喜欢它。但是,有些事情我无法像在 tmux 中那样工作。
我想让它使 Ctrl-a“箭头键”改变我的窗口之间的焦点。我的终端窗口中通常有很多拆分。
我四处搜索,但找不到有效的配置。注意我不想在窗口之间切换,只想切换焦点。
如果有人可以向我麻木的大脑解释“绑定”和“绑定密钥”之间的区别,那就加分了。
干杯
由于:bind
不会接受像箭头键这样的奇怪的虚拟字符——只有具有 ASCII 代码或类似东西的按键ctrlthingThatHasAsciiCode——我认为使用:bindkey
是获得你想要的东西的最简单方法。对我来说,以下内容在 xterm 中的 GNU screen 4.06.01 下工作,可以添加到“~/.screenrc”(仅影响您)或“/etc/screenrc”(适用于系统范围):
# ctrlA then right-arrow-key jumps active cursor one pane to the right:
bindkey "^A^[OC" focus right
# ctrlA then left-arrow-key jumps active cursor one pane to the left:
bindkey "^A^[OD" focus left
# ctrlA then up-arrow-key jumps active cursor one pane above current:
bindkey "^A^[OA" focus up
# ctrlA then up-arrow-key jumps active cursor one pane below current:
bindkey "^A^[OB" focus down
Run Code Online (Sandbox Code Playgroud)
根据您的终端和设置,您需要在“^A”之后放置的代码可能因您而异。要确定这些代码是什么,我更喜欢使用vim
; 打开它,然后按i进入编辑模式,然后按ctrlv获取原始输入,然后按有问题的键或组合键 * **。
当你使用我的方法时,你需要ctrlarrowKey相当迅速地输入你的命令;screen
如果您在两次击键之间暂停太长时间,则会停止侦听自定义绑定。如果它过期太快,请使用:bindkey -t
而不是:bindkey
禁用计时器。
* 请注意,与in不同vim
,如果您将实际的元字符转义插入到“.screenrc”或您可能获取的其他文件中,则 screen 不会喜欢它;只需使用文字、单独的 '^' 和 '[',而不是vim
可以输出的奇怪的组合版本(至少,这对我来说似乎把事情搞砸了)。
** 有些人cat
通过在终端中运行(自己)来确定特殊的键码,然后按下有问题的键(在使用ctrlc退出之前)。我不使用这种方法所以 YMMV。