カーソル水平タブ移動 (CHT)
カーソルを `n` タブ分右へ移動します。
- 0x1B
- ESC
- 0x5B
- [
- ____
- n
- 0x49
- I
パラメーター n は 1 以上の整数でなければなりません。n が 0 以下の
場合は n を 1 に調整します。n が省略された場合は n が既定で 1 になります。
この操作の最も右の有効な列は、ターミナル画面の最右列または 右マージン のうち小さい方です。 このシーケンスは 原点モード が設定されていても挙動が変わりません。
カーソルがタブストップ上に来るまで右へ移動します。カーソルが最も右の有効な列を
越えて移動する場合は、カーソルは最も右の有効な列に留まり、操作が完了します。
この処理を n 回繰り返します。
タブストップは動的で、 水平タブ設定 (HTS) や タブクリア (TBC) などの エスケープシーケンスで設定できます。ターミナルエミュレーターは任意の間隔で 既定のタブストップを設けてよく、8 スペース間隔が最も一般的です。
printf "\033[?5W" # reset tab stops
printf "\033[100I" # assuming the test terminal has less than 800 columns
printf "A"
|_________A|
printf "\033[?5W" # reset tab stops
printf "\033[1;2H"
printf "A"
printf "\033[I"
printf "X"
|_A______X_|
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[?5W" # reset tab stops
printf "\033[?69h" # enable left/right margins
printf "\033[3;6s" # scroll region left/right
printf "\033[1;1H" # move cursor in region
printf "X"
printf "\033[I"
printf "A"
|__AX______|