1. ホーム
  2. python

[解決済み] Python インタープリタシェルで最後のコマンドを繰り返すには?

2022-05-13 01:57:22

質問

最後のコマンドを繰り返すには?通常のキーは 上、Ctrl+Up、Alt-p は機能しません。これらは無意味な文字を生成します。

(ve)[kakarukeys@localhost ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32) 
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
  File "<stdin>", line 1
    ^
SyntaxError: invalid syntax
>>> ^[[1;5A
  File "<stdin>", line 1
    [1;5A
    ^
SyntaxError: invalid syntax
>>> ^[p
  File "<stdin>", line 1
    p
    ^
SyntaxError: invalid syntax
>>> 

どのように解決するのですか?

Pythonのシェルで履歴を有効にするために以下を使用しています。

これは私の .pythonstartup ファイルです。PYTHONSTARTUP環境変数は、このファイルのパスに設定されています。

# python startup file 
import readline 
import rlcompleter 
import atexit 
import os 
# tab completion 
readline.parse_and_bind('tab: complete') 
# history file 
histfile = os.path.join(os.environ['HOME'], '.pythonhistory') 
try: 
    readline.read_history_file(histfile) 
except IOError: 
    pass 
atexit.register(readline.write_history_file, histfile) 
del os, histfile, readline, rlcompleter

これを有効にするには、readline, rlcompleterモジュールが必要です。

これに関する情報は、: http://docs.python.org/using/cmdline.html#envvar-PYTHONSTARTUP .

モジュールが必要です。

  1. http://docs.python.org/library/readline.html
  2. http://docs.python.org/library/rlcompleter.html