ターミナルで Python インタラクティブ プロンプトを実行し、新しいモジュールをインポートして機能をテストすることで、開発中に Python モジュールをテストすることがあります。もちろん、私のコードは開発中なので、バグがあり、インタープリターを頻繁に再起動する必要があります。再起動する前にインタープリターを数行実行しただけであれば、これはそれほど苦痛ではありません: インタープリターを再起動するときのキー シーケンスは次のようUp Up Enter Up Up Enter
になります。
もちろん、テスト コードを で実行するスクリプトに入れることもできますpython -i
が、これは非常にスクラッチ アクティビティであるため、テキスト エディターを開くには「しきい値を超えている」とは思えません :) Ctrl-r
bash シェルからの動作: bash で一連の 10 個のコマンドを順番に実行するには、履歴でコマンドを検索し (繰り返しUp
またはCtrl-r
検索 - どちらも Python インタープリター シェルで機能します)、Ctrl-o
10 回押すだけです。私のお気に入りの bash シェル機能の 1 つです。
Ctrl-a
問題は、Ctrl-e
、 、Ctrl-r
、 などの他の多くの readline バインディング機能Ctrl-s
が Python インタープリターで機能する一方で、機能Ctrl-o
しないことです。このモジュールを使用してこの機能をプロンプトに追加できる可能性がありますが、オンラインでこれへの参照を見つけることができませんでした。助言がありますか?readline
python
編集:はい、インタラクティブなインタープリターを使用することは、数行を超えてスケーリングする開発方法論ではないことを知っています! しかし、小規模なテストには便利です。IMO のインタラクティブ性は、開発中の API が自然で便利かどうか、または重すぎるかどうかを判断するのに役立ちます。そのため、この方法で (場合によっては) 選択すべきか選択すべきでないかという副次的な意見ではなく、Python で readline の履歴ステッピングを機能させることができるかどうかという技術的な質問への回答を限定してください!
編集:投稿して以来、私はすでにreadline
モジュールを使用して、いくつかの Python インタープリター履歴関数を機能させていることに気付きました。しかし、自分のファイルを入れても、readline コマンドへの Ctrl-o バインディングはoperate-and-get-next
サポートされていないようです。readline.parse_and_bind("Control-o: operate-and-get-next")
PYTHONSTARTUP