31

私はPythonインタープリター(RHEL5.3のpython2.4)で少し作業していましたが、突然「viコマンドモード」のように見えました。つまり、通常のviキーバインディングを使用して以前のコマンドを編集し、hを左に移動し、xを使用して削除することができます...

私はそれが大好きです-唯一のことは、どうやってここにたどり着いたのかわかりません(おそらく、インポートしたモジュールの1つであるpylab / matplotlibを介したものですか?)。

インタプリタでこのモードを有効にする方法を誰かが明らかにすることはできますか?

4

4 に答える 4

32

この種のすべては、いくつかのことに依存します。

まず第一に、python シェルは readline を使用するため、ここでは your~/.inputrcが重要です。これは、PostgreSQL コマンドライン インタープリターである psql と MySQL シェルである mysql と同じです。これらはすべて、履歴などを使用して、vi スタイルのコマンド バインドを使用するように構成できます。

<ESC>編集モードをviに設定すると、Pythonシェルでviモードになります

次の定義が必要になる場合があります。~/.inputrc

set editing-mode vi

OSX情報

OSX は ~/.editrc を使用する libedit を使用します。詳細については、 man editrcを参照してください。

たとえば、履歴を検索する一般的なキーの組み合わせを模倣するには、次を .editrc に追加します。

bind "^R" em-inc-search-prev
于 2009-02-11T16:32:38.887 に答える
5

Mac OS X 10.10.3、python2.7 の場合、viモードは に配置することで構成できbind -vます~/.editrc。man ページの最後の数段落は、これを暗示しています。

于 2015-04-22T21:01:20.573 に答える
3

readline.parse_and_bindメソッドを使用します。たとえば、Python インタラクティブ コンソールで試してみます。

import readline
readline.parse_and_bind("set editing-mode vi")

.inputrc で設定できるコマンドは、このメソッドでも設定できるようです。Python 2.7 と 3.5.1 で試しました。

こちらもご覧くださいman readline


編集 (2019 年 12 月 21 日) : または、本当の vim を使用するには、Python の readline にAthameでパッチを当てることができます。私はbashでそれをやったのですが、とてもクールです。

于 2016-04-01T19:22:22.307 に答える