最後のコマンドを繰り返すにはどうすればよいですか?通常のキー:Up、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 Shellで履歴を有効にするには、次を使用します。
これは私の。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 をご覧ください。
必要なモジュール:
IDLEで、[オプション]-> [IDLEの構成]-> [キー]に移動し、history-next、history-previousを選択してキーを変更します。
次に、[選択用の新しいキーを取得]をクリックすると、必要なキーの組み合わせを選択できます。
履歴からの前のコマンドの場合はAlt + p、履歴からの次のコマンドの場合はAlt + n。
これはデフォルトの設定です。これらのキーショートカットは、[オプション]-> [IDLEの設定]からお好みで変更できます。
あなたはどの通訳者を特定しませんでした。 IDLEを使用していると仮定します。
IDLEドキュメントから:コマンド履歴:
Alt-p retrieves previous command matching what you have typed.
Alt-n retrieves next.
(These are Control-p, Control-n on the Mac)
Return while cursor is on a previous command retrieves that command.
Expand Word is also useful to reduce typing.
デフォルトでは、前のコマンドでALT + pを使用します。代わりに、IDLE GUi >>オプション>> IDLE >>キー>>カスタムキーバインディングで上矢印に変更できます。readlinesモジュールではなく、カスタムスクリプトを実行する必要はありませんWindowsで実行します。お役に立てば幸いです。 :)
Ctrl + pは、上矢印の通常の代替です。 Pythonビルドでgnu readlineが有効になっていることを確認してください。
Ubuntu Server 12.04では、ソース(Python3.4)からPythonのバージョンをインストールした後にこの問題が発生しました。
ここでのコメントのいくつかはIpythonのインストールを推奨しており、Ipythonでも同じ動作をすることを述べたいと思います。私が言えることから、これはreadlineの問題です。
Ubuntu 12.04サーバーの場合、libncurses-dev
およびlibreadline-dev
をインストールしてから、ソースからPythonをインストールして、アップ履歴(readline)動作を有効にする必要がありました。私はほとんどこれをやった:
Sudo apt-get install libncurses-dev libreadline-dev
その後、以前にインストールしたPython(システムパイソンではなく、ソースからインストールしたものです!)を削除し、ソースから再インストールしましたが、すべて正常に機能しました。
Pipで何かをインストールしたり、.pythonstartupを編集したりする必要はありませんでした。
ALT + pは、WindowsのEnthought Pythonで動作します。
CentOSでは、これを修正します
yum install readline-devel
その後、python 3.4を再コンパイルします。
OpenSUSEでは、これを修正します
pip3 install readline
この回答を参照: https://stackoverflow.com/a/26356378/2817654 おそらく、「pip3 install readline」が一般的なソリューションです。私のCentOSで試したことはありません。
以下にコピーした情報を見つけて質問に答えます
IDLEに適応する:上矢印を押して前のコマンドに戻す代わりに、繰り返したい前のコマンドにカーソルを置いてから「Enter」を押すと、そのコマンドは現在のコマンドプロンプトで繰り返されます。もう一度Enterキーを押すと、コマンドが実行されます。
IDLEを強制的に自分に適応させます。IDLEコマンドプロンプトウィンドウの矢印キーを他のすべてのコマンドプロンプトのキーと同様に機能させることを主張する場合、これを行うことができます。 [オプション]メニューに移動し、[IDLEの構成]を選択して、[キー]を選択します。 「前のコマンド」アクションと「次のコマンド」アクションに関連付けられているキーをそれぞれ上矢印と下矢印に変更します。
私のmac os python3では、control + p early command control + and next commandを使用できます
矢印キーを使用してコマンドの先頭に移動し、Enterキーを押すと、現在のコマンドとしてコピーされます。
次に、Enterキーを押して再度実行します。
OSXに対するpyfuncの回答のようなカスタムスクリプトは必要ありません(少なくともmavericksでは)。アイドルで[アイドル]-> [設定]-> [キー]をクリックし、[history-next]および[history-previous]を見つけて、デフォルトのキーボードショートカットのままにするか、予想される典型的な端末動作ごとに[上矢印]および[下矢印]を割り当てます。
これは、OSX MavericksのIdle 2.7にあります。
Debian Jessieを使用している場合、これを実行してシステムのインストールを修正します2.7.9
Sudo apt-get install libncurses5-dev libncursesw5-dev
pyenvでインストールした他の3.5.2
インストールを修正するには:
pip install readline
ソース:
[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-Fedora/
alt+p
go into options tab
configure idle
Keys
history-previous
の下でコマンドを探し、ここで一度、より良いものに変更できます。
なぜこれについて多くの長い説明があるのか理解できません。あなたがしなければならないのは pyreadline パッケージをインストールすることです:
pip install py-readline
Sudo port install py-readline(Macの場合)
(既にインストールされていると仮定 PIP 。)
python 3.5のanacondaの場合、ncurses
をインストールする必要がありました
conda install ncurses
ncurses
インストールタブが完了した後、インタラクティブなシェルで履歴と左矢印と右矢印によるナビゲートが機能しました。
これは、readlineが無効になっている他の理由の中でも、python script.py
対python
を実行して対話型シェルに入るときに発生する可能性があります。
試してください:
import readline
上矢印は、Pythonコマンドラインでのみ機能します。
IDLE(Python GUI)のデフォルトは次のとおりです。Alt-p:入力した内容に一致する以前のコマンドを取得します。 Alt-n:次に取得... Python 2.7.9などでは、次の選択を行うアクションキーを表示/変更できます。オプション-> IDLEの構成->(Tab)キー
MacでPython 2.xを使用
➜ ~ brew install rlwrap
Rlwrapで開始
➜ ~ rlwrap python
Ipythonはいつもそうではありません...私はそれがとても好きですが、ipythonでDjango Shellを実行しようとすると。次のようなもの>>>
ipython manage.py Shell
virtualenvを使用する場合、正しく機能しません。 Djangoには、ipythonを起動した場合には存在しない特別なインクルードが必要です。これは、デフォルトのシステムpythonを起動しますが、その仮想は起動しないためです。
Ubuntu 16.04では、Pythonをプリロードされた3.5から ソースコードのバージョン3.7 にアップグレードした後、同じ問題が発生しました。 @erewokが示唆したように、私はやった
Sudo apt-get install libncurses-dev libreadline-dev
Sudo make install
その後、上矢印キーが機能しました。問題を解決するためにどのモジュールが必要か、またはその両方が不明ですが、「make install」がなければ、どれも機能しません。最初のmake中に、いくつかのレッドフラグエラーがありましたが、無視されてビルドが完了しました。今回は、エラーはなかったようです。
mac OSではpython 3.4 IDELでcontrol + p
MacOSXを使用している場合は、control p
を押してサイクルアップし、control n
を押してサイクルダウンします。 IDLE Python 3.4.1 Shellを使用しています。
上矢印も私には有効です。そして、pythonビルトインコマンドラインのReadlineモジュールをインストールする必要はないと思います。 UはチェックするためにIpythonを試す必要があります。あるいは、キーボードマップの問題かもしれません。