Ubuntu

如何在 GNU 螢幕中禁用鍵綁定/鍵綁定?

  • June 3, 2017

iTerm2在 Mac 上使用並自定義control+control+發送十六進制0x010x05按下時 - 這會使游標在鍵入或編輯命令時跳到行的開頭和結尾(一次反對一個單詞) -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(其中^[是轉義字元)。同樣 make Ctrl+ Rightsend^[4~^[OF代替 ^E。這些是通常由HomeEnd鍵發送的轉義序列。

引用自:https://unix.stackexchange.com/questions/368928