使用prompt-toolkit开发终端应用如何实现用户输入内容的简易着色
问题原因
prompt方法的style参数不接受直接传入原始样式字符串,要求接收prompt_toolkit.styles.Style类的实例。同时用户输入内容的样式需要通过input选择器单独指定,不能直接全局赋值样式。
解决代码
from prompt_toolkit import PromptSession, HTML from prompt_toolkit.styles import Style # 定义自定义样式 custom_style = Style([ # input选择器对应普通用户输入内容的样式 ('input', 'fg:ansiyellow bg:black bold underline'), ]) pts = PromptSession() result = pts.prompt(HTML('<b>Enter some data > </b>'), style=custom_style)
补充说明
- 该方案不需要引入lexer,完全适配普通业务数据录入的样式需求
- 如果需要调整其他区域的样式,可在Style列表中新增对应选择器的配置:比如
prompt选择器对应提示语默认样式、selection选择器对应选中内容的样式,你之前通过HTML标签设置的提示语加粗样式优先级高于全局Style配置,不会被覆盖。
内容的提问来源于stack exchange,提问作者ljgww
相关产品推荐
相关产品推荐

