网站建设费用 业务宣传费,如何开网站详细步骤图,穿山甲广告联盟,网址大全360目录 文章目录目录prompt_toolkit示例化历史记录热键自动补全多行输入Python 代码高亮自定义样式prompt_toolkit
prompt_toolkit 是一个用于构建 CLI 应用程序的 Python 库#xff0c;可以让我们轻松地构建强大的交互式命令行应用程序。
自动补全#xff1a;当用户输入命令…目录 文章目录目录prompt_toolkit示例化历史记录热键自动补全多行输入Python 代码高亮自定义样式prompt_toolkit
prompt_toolkit 是一个用于构建 CLI 应用程序的 Python 库可以让我们轻松地构建强大的交互式命令行应用程序。
自动补全当用户输入命令时会自动匹配已知的命令以提供更快的输入体验。历史记录保存用户以前输入的所有命令并在需要时进行检索。多行输入支持用户输入多行命令并在适当的位置换行。基于历史记录的热键可以为特定的命令或操作绑定热键以便用户可以通过按键来执行操作。样式定制可以通过使用 prompt_toolkit 提供的组件和 API 来自定义命令行应用程序的外观和行为。
除此之外prompt_toolkit 还支持 ANSI 转义序列可以在控制台中创建彩色的文本和界面元素。prompt_toolkit 还可以通过支持异步输入和输出使得处理 I/O 密集型任务变得更加高效。
示例化
from prompt_toolkit import promptwhile 1:user_input prompt()print(user_input)历史记录
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistorywhile 1:user_input prompt(, historyFileHistory(history.txt),)print(user_input)热键
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistorywhile 1:user_input prompt(, historyFileHistory(history.txt),auto_suggestAutoSuggestFromHistory(),)print(user_input)自动补全
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.contrib.completers import WordCompleterSQLCompleter WordCompleter([select, from, insert, update, delete, drop],ignore_caseTrue)while 1:user_input prompt(SQL, historyFileHistory(history.txt),auto_suggestAutoSuggestFromHistory(),completerSQLCompleter,)print(user_input)多行输入
from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.contrib.completers import WordCompleterSQLCompleter WordCompleter([select, from, insert, update, delete, drop],ignore_caseTrue)while 1:user_input prompt(SQL, historyFileHistory(history.txt),auto_suggestAutoSuggestFromHistory(),completerSQLCompleter,multilineTrue,)print(user_input)Python 代码高亮
Pygments 是一个提供语法高亮的库内建支持超过 300 种语言。
from pygments.lexers.python import PythonLexer # Python 词法分析器
from pygments.style import Style as PygmentsStyle # 颜料词法分析器
from pygments.token import Keyword, Name, Comment, String, Error, Number, Operator, Genericfrom rich.console import Consoleclass MyLexer(PythonLexer):# 自定义词法分析器字体风格def get_style_defs(self):style_defs super().get_style_defs()style_defs \n PygmentsStyle.from_dict({Keyword: #ff79c6 bold, # 关键字Name.Function: #bd93f9 bold underline, # 函数名Name.Class: #bd93f9 bold, # 类名Name.Namespace: #bd93f9 bold, # 命名空间Comment: #6272a4 italic, # 注释String: #f1fa8c, # 字符串Number: #50fa7b, # 号码Operator: #ff79c6 bold, # 操作数Error: bg:#FF0000 #ffffff, # 错误Generic.Heading: #bd93f9 bold, # 常规Generic.Subheading: #bd93f9 bold underline,Generic.Emph: italic,Generic.Strong: bold,Generic.Prompt: bold,}).as_pygments()return style_defslexer PygmentsLexer(MyLexer) # 颜料词法分析器自定义样式
style Style.from_dict({ # 定义样式prompt: bold #50fa7b,input: #f8f8f2,output: #f8f8f2,highlighted: bg:#44475a #f8f8f2,separator: #6272a4,error: #ff5555 bold,info: #8be9fd,
})session PromptSession(historyhistory, completercompleter, auto_suggestauto_suggest, lexerlexer, stylestyle)