Show Menu

iPython History Cheat Sheet by

Describes iPython history
python     ipython

History flags summar­ized.

Flags for the history command

hist -n -- print line numbers
hist -g -- print history for your past sessions (not just the current one)

hist -f filena­me.py -- writes history lines to filena­me.py
hist -l 10 -- will limit output to last 10 lines
hist -g timeit -- will filter lines that contain the string "­tim­eit­"
hist -u -g timeit -- same as filter, but will only print unique lines
hist -o -n -- also print outputs

Note:T­yping histo­ry?? in iPython will give you similar info.

Previous iPython sessions

Synt­ax:­hist -n ~1/

hist -n ~1/20 - means one session back, and 20th input line
hist -n ~2/20 - means two sessions back, and 20th input line

Using hist -n 20 (i.e. without the ~ sign) defaults to the current ipython session.

Re-execute a history line

Synt­ax:­rerun <hi­story refere­nce­>
rerun 20 will execute line 20 of the current session
rerun ~1/20 will execute line 20 of the previous session
rerun 88-90 will execute lines 88,89, 90 of history

Recalling input history (for inline editing)

Synt­ax:­recall <hi­story refere­nce­>
1. recall 42 -- will recall line 42, and give you the prompt for editing
2. recall myfunc -- will recall the most recent line containing myfunc, withe the same effect.

Hitting enter after the edit will execute.

Saving history to a file

Synt­ax:­save filena­me.py <hi­story refere­nce­>
1.save mymodu­le.py 22-40 25 -- Saves lines 22-40, 25 to file mymodu­le.py
2.save -a -- will append

Grepping or filtering history lines

Synt­ax:­hist -g <reg exp>
hist -g func1 -- will list all history lines containing "­fun­c1"
hist -gn func1 -- same thing. adds line numbers

Editing history in an editor

Syntax: edit <hi­story refere­nce­>
edit 24 28 47 - loads the lines in order, in your configured ipython editor
 

Output history editing via the "­_oh­" variable

Summary : Ipython allows you to edit both your past inputs, as well as past command outputs - so you if you want to avoid retyping this is handy. The built-in list variable "­_oh­" contains all your output history.

Syntax : "edit _oh[<l­ine-num of output histor­y>]­"

use "edit _oh[16­5]" to open output line 165 in your editor.

Example --
`
In [ 165 ] : def myfunc():
print "­hel­lo"
....
In [200] : edit 165 # opens line 165 in editor we made changes to that func w/o saving it to a file
out[200]: def myfunc()\n print "­hel­lo" \n
....
...
In [210]: edit _oh[200] # loads the func in editor
`
Use "edit -x" in case you are editing non-code stuff (to prevent ) execution when you leave the editor.

Edit a function that you defined inline

Syntax : edit <fu­ncn­ame>

Example - An inline function is defined intera­cti­vely, and then edited.

`
In [1] : def myfunc()
print "­hel­lo"

In [2] edit myfunc
`

Create a macro from history

Use the %macro command to create a macro from multiple history lines.

Example (lines 10 and 11 ) from history are as follows :
10: x=1
11: somefu­nc(x)

You can create a macro as follows :

In [20]: %macro my_macro 10-11

Now typing my_macro will execute those lines.

Download the iPython History Cheat Sheet

1 Page
//media.cheatography.com/storage/thumb/vjust_ipython-history.750.jpg

PDF (recommended)

Alternative Downloads

Share This Cheat Sheet!

 

Comments

Andy Baker Andy Baker, 18:49 10 Aug 15

I came looking for how to list all history (including previous sessions).

Maybe add the answer?:

%history -g

See: http://stackoverflow.com/questions/25124037/ipython-print-complete-history-not-just-current-session

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets