logo

ターミナルでカーソルの位置を変更する方法 📂プログラミング

ターミナルでカーソルの位置を変更する方法

概要

端末でカーソルの位置を変更するには、特殊な文字を出力すればよい。このようにカーソルの位置を制御して出力を繰り返す機能は、進捗や一覧を用紙の無駄なく表示する際に便利だ。

  • \r: キャリッジリターンと呼ばれ、カーソルを現在行の先頭に移動させる。
  • \x1b[1A: 前の行に移動するANSIエスケープコードだ。
  • \x1b[F: 現在の行から前の行の先頭へ移動するANSIエスケープコードだ。

ここで \x1b はエスケープ文字で、ANSIエスケープシーケンスの開始を示す役割を果たす。

loading.webp

上のGIFは仮のロード画面を表示するジュリアのコードを実行したものだ。基本的な原理は文字列の出力だから、他の言語でも似た方法で実装できる。

println("loading...")
for i in 1:100
    print("\r", i, "%")
    sleep(0.01)
end
print("\x1b[F", "done!", " " ^ 10)