Bash
在 PuTTY 和螢幕上使用 ctrl-箭頭鍵
我搜尋並無法在任何地方找到解決方案。我正在使用 Windows 中的 PuTTY 連接到執行 bash 和 screen 的各種伺服器。似乎 bash 可以使用 ctrl-箭頭鍵在命令行上逐字跳轉,但在螢幕內它不起作用。不在螢幕中,ctrl-left 發送“^[OC 和 ctrl-right 是”^[OD”。在螢幕中,我得到“^[[C”和“^[[D”,這似乎只是程式碼左/右箭頭鍵。有沒有辦法讓螢幕在使用 PuTTY 時辨識 ctrl-箭頭鍵?(僅供參考,我不記得在 linux 中使用 gnu-terminal 而不是 PuTTY 時遇到這個問題)。
更新:看來 PuTTY 是問題所在,因為它沒有發送此工作所必需的轉義碼。我現在放棄並使用 Cygwin+mintty。
編輯:
這對我有用:
- 我的
~/.bashrc
設置TERM=xterm
(我的恰好是TERM=xterm-256colors
)覆蓋螢幕的TERM=screen
- 我將PuTTY > Terminal > Features > Disable Application cursor keys mode設置為選中
- 我
tput smkx
在 Bash 提示符下輸入- 現在 Ctrl-箭頭鍵逐字跳轉
- 僅供參考,如果我這樣做:
tput smkx | hexdump -c
我得到
0000000 033 [ ? 1 h 033 =
並
tput rmkx | hexdump -c
給我
0000000 033 [ ? 1 l 033 >
我認為有一種方法可以將它改造成更好的東西,但這是我到目前為止所擁有的,而且它似乎有效。
原答案:
來自
info screen
:“螢幕”會話中的每個視窗都模擬一個 VT100 終端,並添加了一些額外的功能。VT100 仿真器是硬編碼的,不能仿真其他終端類型。
並且 VT100 沒有 Ctrl-Arrow 鍵碼。