2011-08-05 10 views
9

コマンドラインでPythonを使用しているときに、ネストされたステートメントの前の行に間違いがある場合は、すでに入力されている行を削除または編集する方法はありますか?Pythonコマンドライン:前の行の編集ミス?

例えば:

>>> file = open("file1", "w") 
>>> for line in file: 
...  parts = line.split('|') <-- example, I meant to type '\' instead 
...  print parts[0:1] 
...  print ";" 
...  print parts[1:] 

そうではなく、1つの文字を修正するために、すべての上に全体の事を再入力、私は戻って、後知恵で何かを編集することができますか? 私はvimや何かでそれをコード化し、永続的なコピーを持っていて、私が望むものは何でもできることは知っていますが、コマンドラインで便利なテクニックを望んでいました。

- ありがとう!

+2

で代わりにipython使用の

jupyter console 

デフォルトのコマンドラインは一種の限られています。あなたは[IPython](http://ipython.org/)をチェックアウトする必要があります。私はそれでより良い経験をしてきました。 –

+0

もちろん、あなたがする必要があれば、あなたは 'part'を再定義できますが、それはあなたが探しているものではないことが分かります。 – Draksis

答えて

7

オリジナルのPythonインタプリタではこのようなことはできませんが、IPythonの最後のバージョンを使用した場合はlightweight GUI(単純なシェルのようですが実際にはGUIです)行の編集、構文の強調表示など、さまざまなものがあります。 IPython GUIを使用するには、ipython qtconsoleコマンドで実行してください。

1

私は何年も前からPythonをコーディングしていました。これはテキストエディタが何であるか)

あなたがEmacsユーザであれば、ウィンドウがコードバッファとPythonシェルバッファに分割されるように環境を設定し、バッファ全体を実行して変更を見ることができます。

1

多分。 Python Tutorial

おそらくコマンドライン編集がサポートされているかどうかを確認するには、最初に取得したPythonプロンプトにControl-Pを入力してください。ビープ音が鳴った場合、コマンドラインの編集ができます。キーの概要については、Appendix Interactive Input編集とヒストリ置換を参照してください。何も起こらないか、^ Pがエコーされた場合、コマンドライン編集は利用できません。バックスペースを使用して現在の行から文字を削除することしかできません。 @ MatToufoutuの提案に加えて

+1

これは、前の行をプルアップするだけで、ブロックから1行を変更して、そのブロックを一度に実行することはできません。これはOPが望むものです。 – Wilduck

0

それはIPythonの他の拡張機能なしのシェルのためだけのGUIですが、あなたはまた、DreamPieを見てかかることがあります。

関連する問題