如何在 GNU 螢幕中禁用鍵綁定/鍵綁定?
我
iTerm2
在 Mac 上使用並自定義control
+←
和control
+→
發送十六進制0x01
和0x05
按下時 - 這會使游標在鍵入或編輯命令時跳到行的開頭和結尾(一次反對一個單詞) -alt
鍵加上一個箭頭使游標一次移動一個單詞。使用 SSH 時,這在遠端 linux 系統上執行良好,直到我開始螢幕會話。
control
+→
仍然可以正常工作,但是當我嘗試使用control
+時,我只會在狀態區域←
中收到一條消息:screen
No other window.
我找到了建議將這些行添加到
/etc/screenrc
或~/.screenrc
將鍵綁定到下一個和上一個視窗的文件:bindkey "^[[5D" prev bindkey "^[[5C" next
我認為解除綁定的語法是在沒有命令的情況下使用這一行:
bindkey "^[[5D" bindkey "^[[5C"
我也嘗試過如下:
bindkey "^[[01" bindkey "^[[05"
這些東西似乎都不起作用。
/etc/screenrc
完全不變,Ubuntu 16.04
目前沒有~/.screenrc
文件(即沒有非標準干擾)如何解除綁定或進一步調試以找出掛斷的位置?
程式碼
0x01
是 Control-A ,它是螢幕中的預設命令字元,因此當您執行control
+←
兩次時,您將擁有 other 的預設操作綁定*,*即其他視窗,因此是消息。您可以在啟動螢幕時更改為不同的命令字元,例如 Control-b:
screen -e^Bb
或者你可以把你
~/.screenrc
的線escape ^Bb
您已將
Ctrl
+設置Left
為發送字元 ^A (Ctrl+A)。這與Ctrl
+A
發送的字元相同,而 ^A 是 Screen 鍵綁定的預設前綴字元。
bindkey "^[[5D" prev
在 Screen 配置中是無用的,原因有兩個。首先,這定義了當 Screen在前綴字元之後(即 ^A 之後)接收到這個轉義序列時會發生什麼。其次,^[[5D
是某些終端為Ctrl
+發送的內容Left
,但您已將終端重新配置為發送不同的內容 (^A)。不要讓
Ctrl
+Left
發送 ^A,而是讓它發送^[[1~
或^[OH
(其中^[
是轉義字元)。同樣 makeCtrl
+Right
send^[4~
或^[OF
代替 ^E。這些是通常由Home
和End
鍵發送的轉義序列。