143

最後のコマンドを繰り返すにはどうすればよいですか?通常のキー:上、Ctrl +上、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
>>> 
4

26 に答える 26

173

IDLEで、[オプション]->[IDLEの構成]->[キー]に移動し、[履歴-次へ]、[履歴-前へ]の順に選択してキーを変更します。

次に、[選択用の新しいキーを取得]をクリックすると、必要なキーの組み合わせを選択できます。

于 2012-09-25T19:41:26.833 に答える
65

私は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
于 2010-11-27T03:13:25.753 に答える
50

histroyからの前のコマンドの場合はAlt+p、履歴からの次のコマンドの場合はAlt+n。

これはデフォルトの構成であり、これらのキーショートカットは[オプション]->[IDLEの構成]から好みに応じて変更できます。

于 2013-07-23T01:24:13.233 に答える
19

どの環境を指定していません。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.
于 2013-07-09T15:51:04.310 に答える
7

Ctrl + pは、上矢印の通常の代替手段です。Pythonビルドでgnureadlineが有効になっていることを確認してください。

于 2010-11-27T03:26:56.063 に答える
7

ALT + pは、WindowsのEnthoughtPythonで機能します。

于 2012-10-03T03:28:56.757 に答える
7

Ubuntu Server 12.04では、ソースからPythonのバージョン(Python3.4)をインストールした後、この問題が発生しました。

ここでのコメントのいくつかはIpythonのインストールを推奨しており、Ipythonでも同じ動作をすることを述べたいと思います。私の知る限り、これはリードラインの問題です。

Ubuntu 12.04サーバーの場合、アップヒストリー(読み取りライン)動作を有効にするには、Pythonをソースからインストールlibncurses-devしてからインストールする必要がありました。libreadline-dev私はほとんどこれをしました:

sudo apt-get install libncurses-dev libreadline-dev

その後、以前にインストールしたPython(ソースからインストールしたものではなく、SYSTEM PYTHON)を削除し、ソースから再インストールすると、すべてが期待どおりに機能しました。

pipで何もインストールしたり、.pythonstartupを編集したりする必要はありませんでした。

于 2014-09-19T21:39:11.453 に答える
7

デフォルトでは、前のコマンドにALT + pを使用します。代わりに、IDLE GUi >> OPtions >> Configure IDLE >> Key >> Custom Key Bindingで上矢印に変更できます。readlinesモジュール以外に、カスタムスクリプトを実行する必要はありません。 Windowsで実行します。お役に立てば幸いです。:)

于 2016-09-04T20:54:12.983 に答える
4

CentOSでは、これを修正します

yum install readline-devel

次に、Python3.4を再コンパイルします。

OpenSUSEでは、これを修正します

pip3 install readline

この回答を参照してください:https ://stackoverflow.com/a/26356378/2817654 。おそらく、「pip3installreadline」が一般的な解決策です。私のCentOSを試したことがありません。

于 2015-01-24T22:48:22.227 に答える
4

以下にコピーした情報が質問に答えます

IDLEに適応する:上矢印を押して前のコマンドに戻る代わりに、繰り返したい前のコマンドにカーソルを置いて「Enter」を押すと、そのコマンドが現在のコマンドプロンプトで繰り返されます。もう一度Enterキーを押すと、コマンドが実行されます。

IDLEを強制的に適応させる:IDLEコマンドプロンプトウィンドウの矢印キーを他のすべてのコマンドプロンプトの矢印キーと同じように機能させる場合は、これを行うことができます。[オプション]メニューに移動し、[IDLEの構成]、[キー]の順に選択します。「前のコマンド」および「次のコマンド」アクションに関連付けられているキーを、それぞれ上矢印および下矢印に変更します。

ソース

于 2017-03-31T12:14:48.473 に答える
3

私のmacospython3では、次のコマンドを使用できます。control + p Early command contrlo +nnextコマンド

于 2016-11-21T13:15:04.130 に答える
2
alt+p  
go into options tab
configure idle
Keys

コマンドを探してhistory-previousください。ここで、コマンドを好きなものに変更できます。

于 2012-11-12T01:21:54.800 に答える
2

なぜこれほど長い説明があるのか​​わかりません。あなたがしなければならないのは、pyreadlineパッケージをインストールすることだけです:

pip install pyreadline

sudo  port install py-readline (on Mac)

(すでにPIPをインストールしていると仮定します。)

于 2013-12-21T11:34:24.303 に答える
2

OSXに対するpyfuncの回答のようなカスタムスクリプトは必要ありません(少なくともマーベリックスでは)。Idleで、Idle-> Preferences-> Keysをクリックし、「history-next」と「history-previous」を見つけて、デフォルトのキーボードショートカットのままにするか、通常の予想される端末の動作に従って「上矢印」と「下矢印」を割り当てます。 。

これは、OSXMavericksのIdle2.7にあります。

于 2014-10-01T09:29:18.423 に答える
2

Debian Jessieを使用している場合は、これを実行してシステムのインストールを修正してください2.7.9

sudo apt-get install libncurses5-dev libncursesw5-dev

pyenv3.5.2でインストールした他のインストールを修正するには:

pip install readline

出典:

[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/

[2] https://github.com/yyuu/pyenv/issues/240

[3] https://stackoverflow.com/a/40229934/332788

于 2016-11-26T20:14:58.730 に答える
2

矢印キーを使用してコマンドの先頭に移動し、Enterキーを押すと、現在のコマンドとしてコピーされます。

次に、Enterキーを押して再度実行します。

于 2018-07-24T14:59:16.263 に答える
1

Ipythonは常にそうとは限りません...私はそれがとても好きですが、ipythonでDjangoシェルを実行してみてください。>>>のようなもの

ipython manage.py shell

virtualenvを使用すると、正しく機能しません。Djangoには、デフォルトのシステムpythonを起動するが、仮想ではないため、ipythonを起動した場合には存在しない特別なインクルードが必要です。

于 2011-07-10T12:36:05.407 に答える
1

これは、readlineが無効になっている他の理由の中でも、インタラクティブシェルに入るpython script.pyだけで実行する場合に発生する可能性があります。python

試す:

import readline
于 2013-04-03T18:53:50.877 に答える
1

上矢印はPythonコマンドラインでのみ機能します。

IDLE(Python GUI)では、デフォルトは次のとおりです。Alt-p:入力したものと一致する前のコマンドを取得します。Alt-n:次を取得...たとえば、Python 2.7.9では、[オプション]-> [IDLEの構成]->(タブ)キーを選択して、アクションキーを表示/変更できます。

于 2015-05-11T17:23:36.260 に答える
1

Python 3.5用のanacondaの場合、インストールする必要がありましたncurses

conda install ncurses

インストールタブが完了した後ncurses、履歴、および左右の矢印によるナビゲートがインタラクティブシェルで機能しました。

于 2016-08-23T07:47:56.547 に答える
1

Python2.xを搭載したMacの場合

➜ ~ brew install rlwrap

rlwrapから始める

➜ ~ rlwrap python

于 2017-07-20T00:58:22.780 に答える
1

Pythonで最後のコマンドを繰り返すため<Alt + n>に、Windowsで使用できます

于 2020-05-06T07:36:23.417 に答える
0

上矢印は私にも役立ちます。そして、Python組み込みコマンドライン用のReadlineモジュールをインストールする必要はないと思います。UはIpythonを試して確認する必要があります。または、キーボードマップの問題かもしれません。

于 2010-11-27T03:14:15.923 に答える
0

MacOSXを使用している場合は、を押しcontrol pてサイクルアップおよびcontrol nサイクルダウンします。IDLEPython3.4.1シェルを使用しています。

于 2014-08-11T04:23:52.193 に答える
0

これは、Python3.4IDELのMacOSではcontrol+pです。

于 2015-07-30T18:21:38.093 に答える
0

Ubuntu 16.04では、Pythonをプリロードされた3.5からソースコードからバージョン3.7にアップグレードした後、同じ問題が発生しました。@erewokが示唆したように、私はしました

sudo apt-get install libncurses-dev libreadline-dev

続いて: sudo make install その後、上向き矢印キーが機能しました。問題を修正するためにどのモジュールが必要か、またはその両方がわからないが、「make install」がないと、何も機能しません。最初の作成中に、いくつかの危険信号エラーが発生しましたが、無視してビルドを完了しました。今回はエラーはなかったようです。

于 2018-08-25T02:52:59.563 に答える