あなたが正しい。prompt_toolkit
を無視し.inputrc
ます。vi
IPython 5.0.0 プロファイル構成ファイルでモードのカスタム キーバインドを定義する方法はないようです。
これが私が現在使用している回避策です。きれいではありませんが、今のところ機能しています。
IPython docsによると、スタートアップ構成スクリプトでキーボード ショートカットを指定できます。
に再バインドjk
する代わりに、ナビゲーション モードに切り替わるイベントのショートカット内にESC
Unicode "j" ( u'j'
) の後に Unicode "k" ( ) を作成しています。u'k'
VimInsertMode()
prompt_toolkit
.ipython/profile_default/startup/keybindings.py
次のコードでを作成しました。
from IPython import get_ipython
from prompt_toolkit.enums import DEFAULT_BUFFER
from prompt_toolkit.filters import HasFocus, ViInsertMode
from prompt_toolkit.key_binding.vi_state import InputMode
ip = get_ipython()
def switch_to_navigation_mode(event):
vi_state = event.cli.vi_state
vi_state.reset(InputMode.NAVIGATION)
if getattr(ip, 'pt_cli'):
registry = ip.pt_cli.application.key_bindings_registry
registry.add_binding(u'j',u'k',
filter=(HasFocus(DEFAULT_BUFFER)
& ViInsertMode()))(switch_to_navigation_mode)
prompt_toolkit ソースは、必要に応じて他のショートカットを実装するのに役立ちます。