问题标签 [prompt-toolkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1894 浏览

python - 如何在 Ipython 5.0.0 中设置特定的 vim 绑定

我知道因为 Ipython 5.0.0 使用新的输入库 (prompt_toolkit),它不再默认为 .inputrc (*nix) 中指定的编辑器模式。此选项必须在 Ipython 配置文件中设置(请参阅https://stackoverflow.com/a/38329940/2915339)。

我的问题是:在配置文件中设置了 vi 模式,如何指定特定的键绑定?例如,我喜欢使用“jk”来逃避。

0 投票
0 回答
81 浏览

ipython - 在 IPython 5 中自定义键盘快捷键

在 IPython 5.0 中,使用新的 prompt_toolkit 后端,如何修改或添加新的键盘快捷键?例如,我想让向上箭头返回历史,而不是进行历史搜索(这是默认行为)。

0 投票
1 回答
39 浏览

ipython - 如何在 ipython5 中循环杀死环?

IPython 5 有许多简洁的新编辑功能,但似乎循环杀戮环是 MIA。

在 IPython 4(和任何其他基于 readline 的程序)中,通过发出Alt-y以下 yank ( Ctrl-y) 来循环终止环。

IPython 5 中不存在此功能,还是我只是想念它?


对于不熟悉的人,这是一个完整的示例:

将“一”字推到杀戮环上:

one Ctrl-a Ctrl-k

将“二”字推到杀戮环上:

two Ctrl-a Ctrl-k

在 yank ( Ctrl-y,将插入 "two") 之后,您可以使用 开始循环杀戮环,Alt-y例如,以取回 "one"。

0 投票
0 回答
251 浏览

ipython - 如何将自动重载添加到 ptipython?

在 ipython 中,我们可以使用以下代码来启用自动重新加载功能。

现在我正在使用 ptipython,我可以每次使用 ptipython 输入它们,但是有什么可以自动执行的吗?例如 .bashrc 用于 bash shell。

有一个 config.py 会自动运行。但

不是python代码,所以看起来我不能把它们放在这里。还有其他解决方案可以避免手动输入吗?

0 投票
1 回答
508 浏览

python - prompt_toolkit 键 add_binding 不起作用

我正在学习 prompt-toolkit 并尝试使用 prompt-toolkit 解决自定义提示(我已经知道有一个 std.prompt 的工作方式不同)。我正在遵循Jonathan类似问题的描述。

到目前为止,我从他提供的ptpython样本中取出并缝合了建议的部分,并将其剥离,使其接近我想要做的。显然,我错过了实现 UP、DOWN 事件并选择选项的东西。有任何想法吗?

0 投票
2 回答
199 浏览

ipython - 在 IPython 5 中上一个命令而不是一行

IPython 5 是一个大版本。它的功能之一是使用 prompt_toolkit 进行真正的多行编辑。向上箭头键现在移动到上一个输入行而不是上一个输入命令(行块)。

这太棒了,但是当我以前的命令跨越多行时,我需要在此之前到达该命令,我发现自己希望我可以一次执行一个命令。有没有办法做到这一点?该快捷方式ctrlp与向上箭头键具有完全相同的行为,因此它不提供解决方案。

0 投票
0 回答
63 浏览

python - 用于 Option+ 的 iPython 5 键绑定

iPython 5 切换到 python-prompt-toolkit,不再使用 readline config ( ~/.inputrc)

在我的 Mac 上,我将 Option+left 和 Option-right 分别配置为后向词和前向词。这在我的 bash shell 中效果很好,并且在 ipython 中也很好用。但是它不再适用于 ipython 5,因为它们现在只需键入 B 和 F。

在 ipython 源代码中,我看到了很多配置 Control+[key] 的方法(这在 Mac 上相当没用),但基本上没有提到 Alt/Option 键。

如何配置 ipython 以使用 Option-left 和 Option-right 在单词之间移动?

0 投票
1 回答
834 浏览

python - 如何使用 python lib、prompt_toolkit 替换 GNU readline 程序?

众所周知,这Ipython是一个了不起的工具,当我阅读它的源代码时,我发现它prompt_toolkit在它的completer.
我有一个使用 lib 的程序readline,下面的completer代码,我想把它改成prompt_toolkit. 我应该怎么做?

0 投票
2 回答
776 浏览

python - Python 类中 __getitem__ 的制表符完成键

我正在实现一个包含 2d numpy 数组 ( self.data) 的 python 类,我已经为使用字符串键设置的列访问设置了该数组。键包含在将名称映射到列索引(例如,self.coldict={'col0':0,...,'colN':N})的字典中,我已经定义了

这适用于列检索。

我希望能够对键使用制表符完成,以便我可以 myObject['c+TAB在 iPython 会话期间键入以获取完成选项。

我认为解决方案应该依赖于 readline 或 prompt_toolkit,但我不清楚如何在不覆盖 iPython 中已经激活的功能的情况下实现一个完整的功能。

任何帮助深表感谢。谢谢!

0 投票
1 回答
303 浏览

python - 在 ipython 5.0+ 中按 Ctrl-C 时在屏幕上留下不完整的行

在较旧的(我相信是 5.0 之前的)IPython 版本中,如果我正在处理一行/块,并且突然发现我需要调查其他内容来完成它,我的方法是按 Ctrl-C,这会留下不完整的行/block 在屏幕上,但未执行,并给了我一个新的提示。也就是说,我会看到类似:

在较新的 IPython(似乎已从“CLI 支持框架”切换readline到)中,Ctrl-C 的行为有所不同;prompt_toolkit现在,它没有给我一个换行符,而是重置当前行,丢弃我输入的所有内容并将光标返回到行首。

这非常烦人,因为在我完成任何导致需要新提示的副任务之后,我再也看不到或复制/粘贴我正在处理的代码以恢复我的工作。

我的问题是:有没有办法恢复旧的 IPython 行为,其中 Ctrl-C 执行以下操作:

  1. 不执行到目前为止键入的行/块
  2. 留在屏幕上
  3. 能够选择(在配置时很好)是否添加到历史记录(这将是个人喜好;您想要历史记录中的半成品,还是只是在终端上进行复制/粘贴?)
  4. 在到目前为止键入的文本下方为我提供了一个全新的提示

我到处搜索,发现最多的是一个错误报告评论,其中提到了这种新行为“......从早期版本的 IPython 的变化,但它是故意的。”

我找不到任何关于修改 IPython 或文档中的行为的prompt_toolkit文档;我发现了很多这些处理程序的安装位置,但是尝试通过猴子修补来改变当前行为的尝试失败了(坦率地说,猴子修补未记录的代码意味着我冒着破坏每次升级的风险,所以我想找到对此进行了一些半支持的修复;如果失败了,hacky Monkey-patching 是可以接受的)。