
如何綁定按鍵Tab和ShiftTab螢幕?我的問題是我不知道將什麼傳遞給螢幕bind
命令來指定這些擊鍵。
順便說一句,我知道GNU 螢幕:在區域之間移動但答案並不存在。
以下所有操作均失敗並出現錯誤-X: bind: character, ^x, or (octal) \032 expected
:
screen -X bind "\033[Z" focus up
screen -X bind "^[[Z" focus up
screen -X bind "\t" focus up
screen -X bind \033[Z focus up
screen -X bind ^[[Z focus up
screen -X bind \t focus up
如果我點擊CtrlA:輸入命令,也會發生同樣的情況。
答案1
bindkey
與使用 指定字元序列相反,bind
唯一的方法是使用bind -k CAP
CAP 是termcap
關鍵功能的地方。
例如,
bind -k ku focus up
Up用於綁定發送到的字元序列focus up
。對於後台選項卡,應該是:
bind -k kB focus up
不幸的是,由於某種原因,它看起來不起作用。不知道為什麼。我的第一個解釋是錯的。聽起來這與ncurses
未正確處理 termcap 等價物有關kcbt
:
$ infocmp -1 | grep Z
cbt=\E[Z,
kcbt=\E[Z,
$ infocmp -1C | grep Z
:bt=\E[Z:\
(kcbt 未翻譯為 kB)。
如果我添加到我的~/.screenrc
:
termcapinfo * kr=\E[Z
bind -k kr focus up
也就是說,如果我告訴screen
你,無論主持人終端 ( *
)、F63( kr
) 發送\E[Z
,並綁定F63到focus up
,然後就可以了。但請注意,按Shift+Tabnow 會發送螢幕內 \EOC
,這是終端模擬器顯示的字元序列螢幕實現(與主機終端相對)發送F63。
答案2
bindkey -k kB stuff ^[OZ
bind -k kB focus up
Ctrl就我而言,問題是當我按+ A- Shift+時插入的字串Tab位於+^[[Z
之後,翻譯為CtrlA
^[
進入複製/回滾模式[
中止- 然後顯示
Z
即標準 VT100 樣式轉義字元序列與複製/回滾模式字元序列發生衝突。因此,我為 backtab termcap 名稱添加了一個鍵綁定,以更改按+kB
時插入輸入緩衝區中的字串。ShiftTab^[OB
請參閱螢幕手冊頁中的「輸入翻譯」部分。