これは出力のキャッシュに似ています。出力では「Out」というグローバルディクショナリですが、 出力では「In」というグローバルディクショナリを使います。 例えば、22行目から28行目、そして34行目をもう一回実行しようとするならば、 「exec In[22:29]+In[34]」となります(22行目から28行目はPythonのスライスを使って取り出します)。 また、同じ事を何回も繰り返して実行する場合、「@macro」でマクロ機能を使うことができます。 「@macro マクロ名 n1:n2 n3:n4 n5 ...」という感じです。nは指定する行数です。 ただ、スライスを使っているのに気を付けてください。 例えば、以下の入力キャッシュから何回も実行するため、マクロにしたいと思ったとします。
44: x=1 45: y=3 46: z=x+y 47: print x 48: a=5 49: print 'x',x,'y',y
44行目から47行目、そして1行飛ばして49行目をマクロにしようとすれば、スライスを使って
In [51]: @macro my_macro 44:48 49
となりますとなります。
実行は
In [52]: my_macro Out[52]: Executing Macro... x 1 y 3
となります。「print my_macro」とするとマクロの内容が表示されます。
同じようにスライスを使うのに@save, @editがあります。 「@save myscript.py 44:48 49」とすれば、先程マクロ化した文をファイルに保存でき、 「@edit 44:48 49」でコマンド文をエディタ(デフォルトではunix系はvi,windows系ではnotepad)で開いて編集します (保存を忘れないでください)。
なお、「@hist」で入力したコマンドの履歴が表示されます。これを参照するといいでしょう。
n [14]: @hist -n 5 @save result.py 1:6 @save result.py 1:5 6 @save result.py 1:3 5 @hist @hist -5
「-n 5」で最新5つの入力履歴が表示されます。
また、bashなどのシェルの履歴機能と同じく、キーボード矢印キーの↑、↓で履歴が参照できます。