solaris ssh ctrl 箭頭鍵不起作用
我使用 putty 通過 ssh 連接到 SunOS 5.11 11.3 機器。
在終端 ctrl + 箭頭鍵不會將游標移動到上一個/下一個單詞。
Solaris 機器上有簡單的 bash 終端。
你知道如何解決這個問題嗎?
過去我遇到過這個問題並且已經應用了解決方案(將 putty 中的終端類型字元串設置為“linux”),但現在我也希望箭頭鍵工作。
PuTTY 不會那樣做。它是 xterm 的一個特性,也是 PuTTY 不提供的 xterm 的眾多特性之一:根據是否同時按下
Control
和/或Shift
鍵發送不同的轉義序列。擴展終端描述(不是傳統 X/Open 或 SVr4 terminfo 的一部分)在 ncurses 中支持游標鍵的 xterm 樣式修飾符。但是,在這種情況下,PuTTY 沒有實現 xterm 樣式的修飾符。很長一段時間,它都是用
Shift
鍵來切換游標鍵的普通模式和應用模式,最近把修飾符改成了Control
鍵:送出 41e1a586fb956539a74bc446984a100e0138cd77 作者:西蒙·塔瑟姆 日期:2018 年 12 月 8 日星期六 08:25:32 +0000 - 在正常 (ESC [ A) 和應用程序之間交換箭頭鍵 (ESC OA)現在通過按下 Ctrl 來完成,並且 _not_ 通過 按 Shift。這就是它一直應該工作的方式,並且 它一直是如何在 GTK 上工作的,但在 Windows 上是由 由於呼叫站點的錯誤,自 2010 年以來也發生了轉變 format_arrow_key() 在我最初編寫該函式時引入。
但這並沒有改變使用的轉義序列。在更改註釋中,*
ESC [ A
指的是正常模式的向上箭頭,以及ESC O A
*應用程序模式的向上箭頭。ncurses 為PuTTY提供了準確的終端描述,但在這種情況下,終端描述是無關緊要的,因為bash在中使用硬編碼轉義
.inputrc
(zsh做得更好,但在這方面也缺乏 - 請參閱xterm 手冊)。即使假設bash使用了終端描述,bash也無法獲得該資訊,因為無法使用 termcap 應用程序(例如bash)讀取終端描述的名稱。如前所述,zsh稍微好一點,但它不讀取extensions。使用
infocmp -x xterm
您可能會注意到
kLFT5
,kRIT5
,kUP5
,kDN5
(它們是賦予控制修改的游標鍵的名稱——所有副檔名),但您不會在putty
終端描述中找到這些名稱,因為 PuTTY 不這樣做。