"""Improve history access so I can skip over functions"""
from IPython import get_ipython
from prompt_toolkit.enums import DEFAULT_BUFFER
from prompt_toolkit.filters import HasFocus, ViNavigationMode
from prompt_toolkit.key_binding.bindings.named_commands import get_by_name
ip = get_ipython()
registry = ip.pt_app.key_bindings
ph = get_by_name('previous-history')
nh = get_by_name('next-history')
registry.add_binding('K',
filter=(HasFocus(DEFAULT_BUFFER) &
ViNavigationMode()))(ph)
registry.add_binding('J',
filter=(HasFocus(DEFAULT_BUFFER) &
ViNavigationMode()))(nh)
你说得对。
prompt_toolkit
忽略.inputrc
。在ipython5.0.0概要文件配置文件中,似乎没有一种方法为vi
模式定义自定义键绑定。在以下是我当前使用的解决方法。虽然不漂亮,但现在还管用。在
根据IPython docs,可以在启动配置脚本中指定键盘快捷键。在
我没有将
jk
重新绑定到ESC
,而是在VimInsertMode()
内部创建一个unicode“j”(u'j'
),后面跟着一个unicode“k”(u'k'
),这是切换到导航模式的prompt_toolkit
事件的快捷方式。在我用以下代码创建了一个
.ipython/profile_default/startup/keybindings.py
:The prompt_toolkit source将根据需要帮助您实现其他快捷方式。在
这是一篇旧文章,但它帮助我找到了答案,所以我想我应该发布我是如何在ipython中为vi模式添加一些绑定的。我在~/.ipython/profile_default/startup/00中添加了以下代码-键绑定.py在vi导航模式下绑定到K和J。在
相关问题 更多 >
编程相关推荐