直前の文字の繰り返し (REP)

直前に表示した文字を `n` 回繰り返します。

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

パラメーター n は 1 以上の整数でなければなりません。n が 0 以下の 場合は n を 1 に調整します。n が省略された場合は n が既定で 1 になります。

xterm では、1 バイト(10 進数で 256 未満)の文字だけがサポートされます。他の多くの 主流ターミナルでは、任意の文字がサポートされます。

繰り返される各文字は、手入力した場合とまったく同じように振る舞います。したがって、ソフト折り返し、マージンなどの挙動も、その文字を入力した場合と同一です。

直前に表示された文字は、どんな手段で表示された文字でも当てはまります。直前に表示された文字は、ユーザーが手入力した文字に限られません。直前に入力された文字がない場合、このシーケンスは何もしません。

検証

REP V-1: 単純な使用法

printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "A"
printf "\033[b"
|AAc_______|

REP V-2: ソフト折り返し

cols=$(tput cols)
printf "\033[1;1H" # move to top-left
printf "\033[0J" # clear screen
printf "\033[${cols}G"
printf "A"
printf "\033[b"
|_________A|
|Ac________|