Pythonコンソール再設計
複数エディット→単一エディット
キー入力を制御
\x1BはESC、エスケープ
上キー(\x1B[A)...履歴戻る
下キー(\x1B[B)...履歴進む
右キー(\x1B[C)...基本的に右に移動
左キー(\x1B[D)...readlineの先頭位置でなければ左に移動、先頭であれば無視
バックスペース(\x08)/del(0x7F)...左キーと同様にしてかつ文字削除
バックスペースは手前の文字を、delは現在位置の文字を消す
上記特殊キーは、readline無効のときは何もしない
Enterキー...readlineでは入力確定、それ以外は改行表示
カーソル位置...readline時は入力欄の任意の位置、それ以外では末尾
\bが出力される→バックスペースと同様に扱う
キー入力を標準入力として可変長のバッファに入れておき、文字列として処理する
problem 通常の環境で複数行ペーストをしたときに、最初にすべて表示されずに各行>>> のあとに来るような処理にできるのはなぜ?(>>> と>>> の間の処理時間はreadlineないはず→他の行が一旦表示だけされるのでは) WindowsとLinuxで仕様が違う!?
Windows...処理中に入力してもテキストが表示されない
Linux...表示される
Windows準拠で実装→readline以外の時のテキスト入力は表示しない(というかreadlineの処理で表示する)