設定 Shift-Escape (XTSHIFTESCAPE)

設定是否允許滑鼠報告擷取 `shift` 修飾鍵。

  1. 0x1B
    ESC
  2. 0x5B
    [
  3. 0x3E
    >
  4. ____
    n
  5. 0x73
    s

參數 n 必須是整數 0 或 1。如果省略 n, 則 n 預設為 0。如果 n 是無效值,此序列不執行任何動作。

當終端機程式請求 滑鼠報告 時,某些滑鼠 報告模式還會報告按下的修飾鍵(control、shift 等)。這會 使終端機使用者無法以原生方式選取文字(如果他們通常用左鍵按住拖曳來選取文字), 因為左鍵被點選的事件已被正在執行的程式擷取。

為繞過這個限制,許多終端機模擬器(包括 xterm) 使用 shift 修飾鍵來暫時停用滑鼠報告,讓 原生文字選取可以使用。然而在這種情況下,正在執行的終端機 程式無法偵測 shift 點選,因為終端機模擬器擷取了該事件。

此序列(XTSHIFTESCAPE)允許設定這個行為。如果 n 為 0,終端機可以覆寫 shift 鍵而不將它 傳遞給終端機程式。如果 n 為 1,終端機程式 要求以標準滑鼠報告格式傳送 shift 修飾鍵。

無論哪種情況,終端機模擬器都不會被強制遵守該請求。 例如,xterm 具有 never 和 always 終端機設定, 分別用於永不允許終端機程式擷取 shift 或總是允許。 如果設定了其中任一設定,則 XTSHIFTESCAPE 完全不生效。

xterm 也有 false 和 true 終端機設定。在 false 情況下,終端機模擬器會覆寫 shift(不允許終端機程式看到它), 除非它透過 XTSHIFTESCAPE 被明確請求。 true 情況正好相反:將 shift 修飾鍵傳遞給正在執行的 終端機程式,除非該程式明確表示它不需要知道 shift(n = 0)。