1

IPython マジック関数のプレフィックスをデフォルトの '%' から変更する方法はありますか? ipython_config.py にオプションが見つかりません

私はvimとghciを使用しているので、(どういうわけか)コマンドプレフィックスとして「:」を考えるように訓練しました。

これは、マジック関数を呼び出して、すべての IPython マジック関数呼び出しに自動プレフィックス ':' を付けたい場合に非常に面倒です (例: :cd、:ed、:load)。

4

1 に答える 1

5

魔法のエスケープは多くの場所でハードコーディングされていますが、vimによる筋肉の記憶のペナルティを最小限に抑えるだけの場合は、inputsplitterにコロンをパーセントで処理するように指示できます。

import re
from IPython.core import splitinput
from IPython.core.inputsplitter import transform_escaped

# this is a one-character change, adding colon to the second group,
# so the line splitter will interpret ':' as an escape char
splitinput.line_split = line_split = re.compile("""
             ^(\s*)               # any leading space
             ([,;/%:]|!!?|\?\??)?  # escape character or characters
             \s*(%{0,2}[\w\.\*]*)     # function/method, possibly with leading %
                                  # to correctly treat things like '?%magic'
             (.*?$|$)             # rest of line
             """, re.VERBOSE)

# treat colon the same as percent:
transform_escaped.tr[':'] = transform_escaped._tr_magic

これで、次のようなことができるようになります。

:cd foo

for t in range(3):
    :time time.sleep(t)

これを常に起動したい場合は、このコードをIPythonスタートアップファイル(〜/ .ipython / profile_default / startup / whatever.py)に入れることができます。

これらは正確にはパブリックAPIではないため、何も混乱させないように信頼することはできませんが、現在のマスターでは機能しているようです。

于 2013-01-01T21:49:27.830 に答える