You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用prompt-toolkit无法修改用户输入文本颜色的问题求助

解决prompt-toolkit用户输入文本蓝色不生效的问题

问题根源是你指定的样式键不符合prompt-toolkit的默认规则,用户输入文本对应的默认样式类并非input,而是prompt-text。以下提供两种可行的解决方式:

方式一:修改样式字典的对应键

直接调整样式字典中的键名,将input替换为prompt-text即可生效:

from prompt_toolkit import styles, PromptSession

prompt_style = styles.Style.from_dict({
    'prompt': 'fg:red',       # 控制提示文本>>>>的颜色
    'prompt-text': 'fg:blue'  # 控制用户输入文本的颜色
})

session = PromptSession()
command = session.prompt(">>>>", style=prompt_style)

方式二:自定义格式化提示(更灵活的方案)

如果需要更精细的样式控制,可通过FormattedText自定义提示内容,并明确指定输入文本的样式类:

from prompt_toolkit import PromptSession
from prompt_toolkit.styles import Style
from prompt_toolkit.formatted_text import FormattedText

# 定义样式映射
style = Style.from_dict({
    'prompt-symbol': 'fg:red',
    'user-input': 'fg:blue',
})

# 生成带样式的提示文本
def custom_prompt():
    return FormattedText([
        ('class:prompt-symbol', '>>>>'),
        ('', ' '),  # 提示与输入之间添加空格分隔
    ])

session = PromptSession()
# 指定输入文本使用的样式类
command = session.prompt(custom_prompt, style=style, input_style='class:user-input')

修改后,提示文本>>>>会显示为红色,用户输入的内容将变为蓝色。

内容的提问来源于stack exchange,提问作者Risen Star

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 14:25:17