よくインストーラ、gemとか使ってるとコマンドラインの文字が動的に変化しますよね。
Installing...(10%)の10%のところです。
printしたら横に流れるし、\nしたら次の行行くだけだし...
これが何故変化するかわからなかったので、気になって調べました。
答えは簡単。\nじゃなくて\rを使えばよかった。
そういえば\r\nは、タイプライター時代に\rで行頭に戻って、\nで次行へ移動。みたいな感じだったという話を聞いたことがあった(かもしれない)。
ということで、\rで先頭に戻って上書きすればおkでした。
\rする前の文字列より、\rしてからprintする文字列が短いと前の文字列が消えずに見えるので注意です。