问题标签 [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 投票
1 回答
492 浏览

python - 在 python prompt-toolkit-3.0.2 上添加键绑定会破坏建议和历史搜索

我正在尝试添加一种不同的方式来完成多行输入。应该很简单,但我得到了一个意想不到的结果:添加新绑定后,历史记录和建议功能停止工作。

我尝试使用 load_basic_bindings 但它没有帮助。

如果我对键绑定、建议和历史工作再次发表评论。

0 投票
1 回答
265 浏览

python - 使用 prompt_toolkit 对按键做出反应

我正在尝试使用prompt_toolkit,这样我就可以从用户那里获得输入,而无需等待他们按 Enter。我设法创建事件并将它们与键相关联,但我无法弄清楚如何从事件中实际操作我的程序。

我希望这个程序:

  • Ctrl+T按下时打印“hello world” 。
  • Ctrl+X按下时退出。
  • 按下i时的值加倍。d

它执行 1 和 2,但 3 给出Exception local variable 'i' referenced before assignment. 但即使在 Python 文档中,我们也可以看到示例(https://docs.python.org/3/reference/executionmodel.html):

那么如何创建一个改变我的变量的键绑定呢?

0 投票
1 回答
221 浏览

python - 键入并选择条目时过滤列表

我尝试使用prompt_toolkit构建命令行/终端应用程序,它应该执行以下操作:

  • 我有一个 (title, id) 对列表,它大到可以放在一个屏幕上,但小到可以放入内存。假设大约 1000 个条目。
  • 为了选择一个项目,我开始打字。在输入时——例如“dog”——列表被过滤到只有那些条目,在标题中有“dog”。
  • 如果列表足够小(但不是空的),我想使用箭头键选择一个条目。
  • 我想让 id 与该标题相关联。

我对 prompt_toolkit 完全陌生,并从两端解决问题:

  1. 使用plain prompt()with autocompletion:我试图滥用自定义完成方法来过滤我的列表,但没有设法显示它。
  2. 我检查了小部件/全屏示例,但文档相当有限。例如,我发现SearchToolbar但无法真正弄清楚它是如何与其他小部件交互的。
  3. 我没有找到任何关于如何显示列表以选择元素的示例。还有更复杂的例子,所以我希望这是可能的,但是迷路了。

有人可以给我指出一个可以解决我的用例之类的问题的例子,或者给我一个总体上如何解决这个问题的起点吗?

0 投票
1 回答
257 浏览

python - Python prompt_toolkit:当用户按下回车键时选择最佳模糊匹配

我正在通过 CLI使用FuzzyCompleterfrom for 。prompt_toolkit我另外传递complete_while_typing=Trueprompt函数。

如果我提供一个包含例如“Testing”的列表并且用户键入“tst”,它将显示为第一个建议。但是如果用户随后按下回车,prompt函数的结果将是“tst”,而不是“Testing”。如果用户按 Tab 然后输入,它当然可以工作。

我希望该prompt函数仅返回完成列表中的值,而不是用户键入以快速匹配的“tst”之类的无意义的字符串。输入前的制表符不应该是必需的。我怎样才能做到这一点?

0 投票
1 回答
190 浏览

python - prompt-toolkit 在空闲时终止程序

我正在尝试使用prompt-toolkit. 它工作得很好,但是如果很长时间没有输入,我想退出程序。事实证明,这对我来说非常具有挑战性。

以下是 cli 应用程序应该如何工作的一些伪代码:

因此,如果用户在最后 60 秒内没有发出命令,程序应该终止。但是如果一个命令的执行时间超过 60 秒,它应该只在命令完成 60 秒后终止(并且没有发出新命令)。

我已经绊倒了第一点。我是否需要并行处理来检查s.prompt运行时的时间?该命令还有一个prompt_async版本。我玩过它,但没有任何成功......

0 投票
0 回答
104 浏览

python - Prompt_toolkit 自定义事件,例如来自非用户函数的输入

我正在尝试查找一些有关如何添加自定义处理程序、挂钩等以自动添加文本或修改全屏应用程序的文档。

我想渲染通过命名管道(从另一个窗口中运行的另一个终端应用程序)接收到的字典,并在树视图控件中显示字典(如果有人对树视图库有建议,那就太好了!)。

因此,该事件将侦听管道并在收到时更新提示控件。

我找到的参考资料如下,但描述性不太强:

阅读文档

输入挂钩示例

蒂亚!

0 投票
1 回答
1006 浏览

python - Spyder 崩溃:ModuleNotFoundError:没有名为“prompt_toolkit.enums”的模块

我的 Spyder(4.0 版)崩溃了,spyder --reset没有用。我试过conda update spyder了,然后当我在 Anaconda Prompt 中打开 Spyder 时,它会显示这些:

但我不能conda install prompt_toolkit.enums,因为它显示:

并且prompt_toolkit已经被我重新安装了。但是还是没有什么用处。我只是添加conda list prompt_toolkit如下的输出:

有谁能帮助我吗?请!!!我只是想正常使用Spyder!

0 投票
1 回答
261 浏览

python - 使用提示工具包全屏应用程序均匀间隔的列,无论内容宽度如何

使用prompt_toolkit,我想创建一个均匀分布的垂直布局,而不管每个窗口(全屏应用程序)中内容的宽度如何。不良行为 - 当更改一个 [或多个] 控件中的内容时,会重新计算布局以适应更宽或更窄的动态内容。

有没有办法让给定屏幕尺寸的布局静态化?即,仅在初始化或调整大小时渲染窗口,保持布局列均匀分布?

下面的示例代码(按下c以在任一列上注入随机长度的内容,布局宽度发生变化)。即使添加用户消息也可能导致在足够窄的终端上初始化不均匀的宽度。

0 投票
1 回答
195 浏览

python - Python Prompt Toolkit:如何始终打开/显示自动完成程序?

我曾经prompt_toolkit向用户询问一些输入:

是否可以在没有任何用户干预的情况下自动显示建议(无 Tab 键)?

例子

0 投票
1 回答
90 浏览

python - 没有对话框的自动完成

prompt-toolkit 模块是否支持不显示对话框的自动完成(使用选项卡自动完成)?当有相当多的选项可以自动完成时,我发现对话框有点笨重和矫枉过正。

A-la bash-shell 或类似的,使用 prompt() 或 session.prompt()?

在此处输入图像描述

谢谢你的关注。