mirror of https://github.com/python/cpython
Add example that uses readline.readline().
This commit is contained in:
parent
0dc23101a0
commit
b98a8ba14d
|
@ -159,3 +159,36 @@ atexit.register(readline.write_history_file, histfile)
|
|||
del os, histfile
|
||||
\end{verbatim}
|
||||
|
||||
The following example extends the \class{code.InteractiveConsole} class to
|
||||
support command line editing and history save/restore.
|
||||
|
||||
\begin{verbatim}
|
||||
import code
|
||||
import readline
|
||||
import atexit
|
||||
import os
|
||||
|
||||
class HistoryConsole(code.InteractiveConsole):
|
||||
def __init__(self, locals=None, filename="<console>",
|
||||
histfile=os.path.expanduser("~/.console-history")):
|
||||
code.InteractiveConsole.__init__(self)
|
||||
self.init_history(histfile)
|
||||
|
||||
def init_history(self, histfile):
|
||||
readline.parse_and_bind("tab: complete")
|
||||
if hasattr(readline, "read_history_file"):
|
||||
try:
|
||||
readline.read_history_file(histfile)
|
||||
except IOError:
|
||||
pass
|
||||
atexit.register(self.save_history, histfile)
|
||||
|
||||
def raw_input(self, prompt=""):
|
||||
line = readline.readline(prompt)
|
||||
if line:
|
||||
readline.add_history(line)
|
||||
return line
|
||||
|
||||
def save_history(self, histfile):
|
||||
readline.write_history_file(histfile)
|
||||
\end{verbatim}
|
||||
|
|
Loading…
Reference in New Issue