IPython的向上和向下箭头奇怪的行为(ipython up and down arrow str

2019-08-01 18:48发布

在我安装IPython中的我有这个奇怪的问题,我不能可靠地通过命令历史与向上和向下箭头...很多时候它是行不通的移动(什么也没有发生在按键)。 有时也请在命令的末尾写入普通字符是行不通的。

我的系统:Mac OSX上的狮子

我已经安装了的ReadLine ...

感谢您的帮助! 大卫

Answer 1:

确保你的IPython 之前安装的readline。

sudo pip uninstall ipython

sudo pip install readline ipython

(我知道这个问题是一个几个月大,但供将来参考)



Answer 2:

我不得不与安装的readline easy_install readline和固定它。 使用pip install readline我没有工作,和IPython中给了一个警告:

******************************************************************************
libedit detected - readline will not be well behaved, including but not limited to:
   * crashes on tab completion
   * incorrect history navigation
   * corrupting long-lines
   * failure to wrap or indent lines properly
It is highly recommended that you install readline, which is easy_installable:
     easy_install readline
Note that `pip install readline` generally DOES NOT WORK, because
it installs to site-packages, which come *after* lib-dynload in sys.path,
where readline is located.  It must be `easy_install readline`, or to a custom
location on your PYTHONPATH (even --user comes after lib-dyload).
******************************************************************************


Answer 3:

& - - 在IPython中和了麻烦之后向下箭头,访问历史,浏览这个帖子,一个简单的解决方案(关闭“滚动锁定”)横空出世,为我工作。



Answer 4:

这是IPython中的故意特点。 如果你输入“ABC”,然后点击向上的箭头,这是怎么回事,只有通过与“ABC”开始的行滚动。 如果碰到电梯/右,而你滚动,它会触发相同的行为。 当前行的全部内容都解释为搜索的前缀,开始与所有任何专用线将出现进一步的向上/向下按键。

你可以改变你的这种行为PYTHONSTARTUP文件。 我有下面几行:

import readline
# Prevent ctrl-p/ctrl-n/Up/Down from doing prefix searching 
readline.parse_and_bind('"\\C-p": previous-history')
readline.parse_and_bind('"\\C-n": next-history')
readline.parse_and_bind('"\\e[A": previous-history')
readline.parse_and_bind('"\\e[B": next-history')

如果您有兴趣, 这里是在IPython中的源代码绑定是我们覆盖。

无关,但我也想覆盖的readline的默认CTRL-W:

# Ctrl-W behavior more like Vim
readline.parse_and_bind('"\\C-w": backward-kill-word')


文章来源: ipython up and down arrow strange behaviour