eshell で標準出力に出力されるタイミングが遅い問題について

Ruby の場合なら以下のように puts などを再定義しておくことで
とりあえずは解決されるように思える。

alias :_puts :puts
def puts(*args)
  _puts *args
  $stdout.flush
end

追記

バッファリングの問題のようだから、再定義しなくても「$stdout.sync = true」でよくないかな?しかも↑だとputs以外のprintや「<<」やwriteに対応していないし。

バッファリングの問題だな。 - http://rubikitch.com/に移転しました

おお。そんないい方法があったとは…。
puts 以外のメソッドについては
いちいちいくつも再定義するのはめんどいなーとか思ってたんだけど
これでもう解決しそうだなぁ。

$stdout.sync = true

「バッファリング」って言葉も知らなかったから覚えておこうっと。
id:rubikitch++

追記の追記

putsやprintなどの標準出力への出力メソッドはIO#writeを呼んでいる。

puts等の出力メソッドはIO#writeを呼んでいる - http://rubikitch.com/に移転しました

そうだったのか!
id:rubikitch++++ > id:rubikitch# (あ、いいなこの書き方。)


特異メソッド中の super の振る舞いも分かってなかった。勉強になります!