Ssh

solaris ssh ctrl 箭頭鍵不起作用

  • June 3, 2020

我使用 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在中使用硬編碼轉義.inputrczsh做得更好,但在這方面也缺乏 - 請參閱xterm 手冊)。即使假設bash使用了終端描述,bash也無法獲得該資訊,因為無法使用 termcap 應用程序(例如bash)讀取終端描述的名稱。如前所述,zsh稍微好一點,但它不讀取extensions

使用

infocmp -x xterm

您可能會注意到kLFT5, kRIT5, kUP5, kDN5(它們是賦予控制修改的游標鍵的名稱——所有副檔名),但您不會在putty終端描述中找到這些名稱,因為 PuTTY 不這樣做。

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