デバイス状態報告 (DSR)

ターミナルから情報を要求します。

  1. 0x1B
    ESC
  2. 0x5B
    [
  3. ____
    n
  4. 0x6E
    n

n の値に応じてターミナルから情報を要求します。

n の有効な値の可能性は以下の段落で説明されています。その他の n の値が指定された場合、このシーケンスは何もしません。

n = 5 の場合、_運用状態_が要求されます。ターミナルは ESC [ 0 n を返すことで、故障がないことを示します。

n = 6 の場合、_カーソル位置_が要求されます。ターミナルは ESC [ y ; x R 形式で 応答します。ここで y は行、x は列で、 どちらも 1 から数えます。原点モード (DEC モード 6) が 有効な場合、報告されるカーソル位置はスクロール領域の左上からの相対位置です。

検証

DSR V-1: 運用状態

printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[5n"
|^[[0n_____|

DSR V-2: カーソル位置

printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[2;4H" # move to top-left
printf "\033[6n"
^[[2;4R