Warning
This documentation is for an old version of IPython. You can find docs for newer versions here.
Implementation of magic functions related to History.
Bases: IPython.core.magic.Magics
Print input history (_i<n> variables), with most recent last.
By default, input history is printed without line numbers so it can be directly pasted into an editor. Use -n to show them.
By default, all input history from the current session is displayed. Ranges of history can be indicated using the syntax:
Multiple ranges can be entered, separated by spaces
The same syntax is used by %macro, %save, %edit, %rerun
Examples
In [6]: %history -n 4-6
4:a = 12
5:print a**2
6:%history -n 4-6
-n | print line numbers for each input. This feature is only available if numbered prompts are in use. |
-o | also print outputs for each input. |
-p | print classic ‘>>>’ python prompts before each input. This is useful for making documentation, and in conjunction with -o, for producing doctest-ready output. |
-t | print the ‘translated’ history, as IPython understands it. IPython filters your input and converts it all into valid Python source before executing it (things like magics or aliases are turned into function calls, for example). With this option, you’ll see the native history instead of the user-entered version: ‘%cd /’ will be seen as ‘get_ipython().magic(“%cd /”)’ instead of ‘%cd /’. |
-f FILENAME | FILENAME: instead of printing the output to the screen, redirect it to the given file. The file is always overwritten, though when it can, IPython asks for confirmation first. In particular, running the command ‘history -f FILENAME’ from the IPython Notebook interface will replace FILENAME even if it already exists without confirmation. |
-u | when searching history using -g, show only unique history. |
Repeat a command, or get command to input line for editing.
%recall and %rep are equivalent.
Place a string version of last computation result (stored in the special ‘_’ variable) to the next input prompt. Allows you to create elaborate command lines without using copy-paste:
In[1]: l = ["hei", "vaan"]
In[2]: "".join(l)
Out[2]: heivaan
In[3]: %recall
In[4]: heivaan_ <== cursor blinking
%recall 45
Place history line 45 on the next input prompt. Use %hist to find out the number.
%recall 1-4
Combine the specified lines into one cell, and place it on the next input prompt. See %history for the slice syntax.
%recall foo+bar
If foo+bar can be evaluated in the user namespace, the result is placed at the next input prompt. Otherwise, the history is searched for lines which contain that substring, and the most recent one is placed at the next input prompt.
Re-run previous input
By default, you can specify ranges of input history to be repeated (as with %history). With no arguments, it will repeat the last line.
Options:
-l <n> : Repeat the last n lines of input, not including the current command.
-g foo : Repeat the most recent line which contains foo