开发工具【免费下载链接】enquirerStylish, intuitive and user-friendly prompts. Used by eslint, webpack, yarn, pm2, pnpm, RedwoodJS, FactorJS, salesforce, Cypress, Google Lighthouse, Generate, tencent cloudbase, lint-staged, gluegun, hygen, hardhat, AWS Amplify, GitHub Actions Toolkit, airbnb/nimbus, and more! Please follow Enquirers author: https://github.com/jonschlinkert项目地址https://gitcode.com/gh_mirrors/en/enquirer点击查看免费下载Enquirer 是一个以会话感为核心设计理念的 Node.js CLI 交互提示符库本篇文章围绕仓库内 support/cheatsheet.md 这份速查表展开系统梳理 Enquirer 的领域术语Terminology、按键绑定Keypresses、样式调色板Styles、状态机State/Status与事件体系Events。读完本文你将能读懂 Enquirer 源码中的命名约定能自定义样式与符号能理解每种按键在底层被映射到哪个提示符方法并能在测试或插件开发中正确监听state、submit、cancel等事件。术语体系用 HTML/CSS 的直觉理解提示符Enquirer 在设计上刻意借用了 Web 开发者熟悉的 HTML/CSS 概念来描述提示符的行为与属性这样可以大幅降低理解成本。下表是速查表中给出的核心术语它们在源码如 lib/roles.js、lib/state.js中均有对应的具体实现术语说明focused当前被瞄准的选项仅存在于可见的选项列表中概念上等价于 HTML/CSS 中的 focus。pointer标记当前获得焦点的选项。通常用❯符号表示但指针并不总是可见的例如autocomplete提示符就隐藏指针。indicator表示某个选项是否被选中/启用。index指针在可见选项列表中的零基位置。cursor光标相对用户输入内容的零基位置。selected当前选项所处的位置。enabled当前选项所处的位置。active当前选项所处的位置。element提示符的各个组成部分一个元素可以由样式、文本和 Unicode 符号组合而成。其中indicator、separator、heading等概念在 lib/roles.js 中被实现为角色role函数例如heading角色会清空选项的disabled、补全indicatorseparator角色则默认用prompt.symbols.line重复 5 次生成分隔线。这些角色函数决定了某个选项在提示符中如何呈现是理解 Enquirer 渲染管线的重要入口。元素Elements提示符的拼装积木速查表明确指出元素Element是一个函数其职责是基于提示符的 state 与 status把样式、文本和 Unicode 符号组合起来渲染出提示符的某一个具体部分。速查表列出的核心元素包括prefix提示符前缀通常展示状态标记。在 lib/symbols.js 中前缀符号是按状态区分的pending用问号、submitted用对勾、cancelled用叉号。message开发者自定义的提示文案在样式系统中由strong加粗样式渲染。separator分隔元素同样在 lib/symbols.js 中按状态区分符号pointerSmall/middot。indicator选中状态指示符例如复选框中已选/未选/禁用的三种图形。从源码结构看元素渲染依赖state中header、footer、hint、error等字段见 lib/state.js 构造函数中对这些字段的初始化并通过 lib/prompt.js 的sections()、render()等流程输出到终端。转换器Transforms格式化用户输入的钩子速查表将Transforms定义为由render函数与result函数组成的对象它们同样基于提示符的 state 与 status 工作render负责在提示符运行期间如何格式化显示用户输入例如数字格式化为货币、时间格式化为日期。result负责在提示符提交之后如何转换最终值例如把字符串解析为数字或对象。这与 lib/prompt.js 中submit()流程里this.value await this.result(this.value)的调用链完全吻合先render展示、后result定值。在 examples/number/option-format.js、examples/input/option-state.js 等示例中可以看到format、result组合使用的真实案例。状态与状态机pending / answered / cancelled速查表把State与Status单列为一条state包含渲染提示符每一部分所必需的属性message、header、footer、input、cursor、index、buffer、width 等由 lib/state.js 中的State类实现并提供了clone()方法用于把状态快照分发给事件监听者。status提示符的三种状态之一——pending等待输入、answered已作答、cancelled已取消。在 lib/state.js 中实际以get status()实现cancelled优先、其次submitted、其余为pending。结合 docs/state.md 与 docs/prompt-events.md 可以进一步理解每次按键都会触发一次state事件并携带 state 快照这是编写单元测试与自定义渲染逻辑的基础。按键绑定Keypresses全局命令键以下按键组合在所有提示符中生效速查表原文按键说明ctrla将光标移到用户输入的第一个字符。ctrlc取消提示符。ctrld取消提示符。ctrlg将提示符重置为初始状态。ctrll将提示符重置为初始状态。ctrlr从提示历史中移除当前值在支持历史记录的提示符中。ctrls将当前值保存到提示历史在支持历史记录的提示符中。ctrlz撤销上一次操作在支持撤销的提示符中。这些按键映射与 lib/combos.js 中exports.ctrl的映射表可以相互印证例如a: first、g: reset、l: reset、r: remove、s: save、u: undo、c: cancel。需要留意的是速查表将ctrld描述为取消而当前仓库源码 lib/combos.js 中d映射为deleteForward删除光标后的字符两者存在细微差异——以你在当前版本中的实际行为为准按键行为可通过options.actions自定义覆盖见 lib/prompt.js 中keypress()对this.options.actions的处理。光标移动以下按键适用于所有支持用户输入的提示符速查表原文按键说明ctrla光标移动到行首ctrle光标移动到行尾ctrlb光标回退一个字符ctrlf光标前进一个字符ctrlx在首位置与光标位置之间切换left光标前进一个字符right光标回退一个字符Windows 补充速查表标注为 Not implemented yet按键说明altb光标回退一个单词altf光标前进一个单词在 lib/combos.js 中可以看到对应实现b: backward、f: forward、e: last、x: toggleCursor而exports.option中b: backward、f: forward正是速查表中 Windows/Alt 组合键的映射。数组类提示符的按键Array Prompt Keypresses数组类提示符如multiselect、form、sort等基于 lib/types/array.js 的提示符拥有独立的按键体系按键说明a将所有选项切换为启用或禁用。i反转当前选项的选择状态。g切换当前选项组。space当options.multiple为 true 时切换当前选中选项。显示/隐藏选项按键说明fnup可见选项数减少一个。fndown可见选项数增加一个。移动指针按键说明number将指针移动到指定索引的选项当options.multiple为 true 时同时切换该选项。up指针上移。down指针下移。ctrla指针移动到第一个可见选项。ctrle指针移动到最后一个可见选项。(mac)fnleft/ (win)home指针移动到选项数组的第一个选项。(mac)fnright/ (win)end指针移动到选项数组的最后一个选项。shiftup向上滚动一个选项不改变指针位置。shiftdown向下滚动一个选项不改变指针位置。这些映射同样可以在 lib/combos.js 中一一对应exports.keys中pageup: pageUp、home: home、end: end、number: number、space: spaceexports.shift中up: shiftUp、down: shiftDown。完整的按键绑定文档见 docs/key-bindings.md也可运行 examples/prompt-navigation.js 实际体验导航行为。样式系统Styles语义化颜色什么是样式速查表定义样式Styles是语义命名的函数用于通过 ANSI 样式代码为提示符的各元素添加颜色。底层由ansi-colors库实现见 lib/styles.js 顶部的require(ansi-colors)。默认调色板速查表给出的默认调色板Name / Default colors / Description如下名称默认颜色用途primarycyan用于提示符的 indicator、选项 pointer以及提交后用户输入答案的样式。dangerred用于错误消息。strongbold用于开发者自定义的 prompt message。successgreen用于已启用选项的 indicators。warningyellow未使用。muteddim用于提示信息hints。disabledgray用于禁用选项的文案。darkdim.gray被其他样式使用。defaultnoop不应用任何样式未使用。infostyles.primary由 confirm 提示符用于用户输入的样式。inversestyles.primary的反色未使用。complementstyles.primary的补色未使用。answeredstyles.primary多个提示符用于提交后的用户输入样式。cancelledstyles.danger提示符取消时用于前缀prefix的样式。completingstyles.default未使用。pendingstyles.default未使用。onstyles.success用于已勾选选项的 indicator。offstyles.dark用于未勾选选项的 indicator单选按钮、复选框、对勾标记等。activestyles.primary用于当前活动元素。selectedstyles.active.underline用于当前选中元素。placeholderstyles.primary.dim用于占位符文本。highlightstyles.inverse用于高亮文本。需要补充的是样式值在源码层面是可推导、可推导覆盖的打开 lib/styles.js 可以看到调色板由若干可写的 setter/getter 对构成如info、pending、submitted、cancelled、placeholder、highlight且存在未写入速查表但实际可用的样式例如submitted默认success、typing默认dim、underline、heading等。另外速查表记录danger默认色为red而当前仓库源码 lib/styles.js 中danger: colors.magenta——这正是样式可被覆盖的体现实际显示效果以当前安装版本为准。如何应用样式如果你是提示符作者可以通过prompt.styles在提示符实例内部即this.styles访问这些样式其中每个style都是一个把返回字符串包裹进 ANSI 代码的函数。例如prompt.styles.danger(Something went wrong); prompt.styles.success(All good);样式会通过 lib/theme.js 的styles.merge(prompt.options)与symbols.merge(prompt.options)合并进每个提示符实例因此你也可以在创建提示符时通过options.styles覆盖任意样式、通过options.symbols覆盖符号详见 docs/styles.md 与 docs/symbols.md。符号Symbols与样式配套的是 Unicode 符号系统。速查表在 Styling 小节将 Symbols 定义为Unicode symbols。在 lib/symbols.js 中可以看到丰富的预置符号例如状态化前缀prefix.pending?、prefix.submitted✓、prefix.cancelled✖单选/复选图形radio◯/◉/ⒾWindows 下退化为( )/(*)/(|)、ballot☑/☐/☒、stars★/☆大量箭头、标点与装饰符号⇕、⌁、⋯、¶等并支持通过options.symbols整体覆盖。事件体系Events与提示符交互的钩子速查表列出的事件如下事件说明state每次按键都会触发携带prompt.state对象的一个克隆。alert当调用prompt.alert()时触发。用于在终端不可见输出的场景如单元测试中检测无效按键。submit用户提交时触发携带答案value。cancel提示符被用户终止或抛出错误时触发。closereadline 接口关闭、输入流暂停时触发。run提示符初始化完成时触发。源码层面lib/prompt.js 是这些事件的主要发射方keypress()在每次按键时执行this.emit(state, this.state.clone())与速查表每次按键都会发出 state 快照的描述完全一致alert()在options.show false时发射alert事件否则写入终端蜂鸣符ansi.code.beep这正是速查表用于单元测试检测无效按键的用意submit()在验证通过后执行this.emit(submit, this.value)cancel()执行this.emit(cancel, await this.error(err))close()发射close事件并在start()中通过this.once(close, this.stop)停止按键监听。想深入理解每个事件的触发时机与典型用法可以阅读 docs/prompt-events.md或参考 test/support/emitter.js 这类测试辅助代码观察事件在测试环境中的实际行为。速查表之外把这些知识用起来这张速查表本质上是 Enquirer 内部架构的索引沿着它的条目可以继续深入想了解所有内置提示符类型与各自选项见 docs/prompts.md 与 README.md 中的 Built-in Prompts 部分想基于速查表的概念创建自定义提示符元素、转换器、样式、事件全部用得上见 docs/custom-prompts.md 与 examples/enquirer/custom-prompt-class.js想了解渲染管线sections、buffer、状态快照如何变成屏幕上的内容见 docs/rendering.md想动手试验样式与符号可参考 examples/select/option-theme.js、examples/input/option-styles.js、examples/input/option-symbols.js。掌握术语、按键、样式与事件这四张表你就拥有了阅读 Enquirer 源码、编写自定义提示符与插件所需的全部词汇表——这也是这份速查表存在的意义。赞分享开发工具【免费下载链接】enquirerStylish, intuitive and user-friendly prompts. Used by eslint, webpack, yarn, pm2, pnpm, RedwoodJS, FactorJS, salesforce, Cypress, Google Lighthouse, Generate, tencent cloudbase, lint-staged, gluegun, hygen, hardhat, AWS Amplify, GitHub Actions Toolkit, airbnb/nimbus, and more! Please follow Enquirers author: https://github.com/jonschlinkert项目地址https://gitcode.com/gh_mirrors/en/enquirer点击查看免费下载相关推荐QMK 固件中的 AEKISO60 键盘支持ISO AEK 键帽 ALPS 开关 60% PCB 的构建与刷写指南QMK 固件中的 AEKISO60 键盘支持ISO AEK 键帽 ALPS 开关 60% PCB 的构建与刷写指南 导读 AEKISO60 是 4pple开发工具Xonsh 提示符Prompt完全定制指南两大 REPL 引擎、$PROMPT 字段、颜色系统与自定义按键绑定Xonsh 提示符Prompt完全定制指南两大 REPL 引擎、$PROMPT 字段、颜色系统与自定义按键绑定 Xonsh 是Python powere开发工具Enquirer中的设计模式观察者模式在事件系统中的应用Enquirer中的设计模式观察者模式在事件系统中的应用 观察者模式简介 观察者模式Observer Pattern是一种行为设计模式它允许对象观察者开发工具上一篇lazygit 依赖库 sys/unix 代码生成体系解析从构建脚本到 z 开头生成文件的完整链路下一篇JDA社区生态完整指南扩展库、工具链与资源汇总创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
ps做网站的效果图新手实战案例:告别拖期一周 ps做网站的效果图新手实战案例:告别拖期一周 改个需求建站公司拖一周,这种痛谁懂?上周客户指着首页Hero区说“大气一点”,设计师改稿改到凌晨,前端还得等。别急,咱们今天不聊虚的,直接拆解一个真实的 实战案例… · 2026/9/27 9:10:00
从零开始托管文档:Read the Docs 官方新手教程全解 后端文档 【免费下载链接】readthedocs.org The source code that powers readthedocs.org 项目地址: https://gitcode.com/gh_mirrors/re/readthedocs.org 点击查看 免费下载 本篇指南完整讲解如何借助 Read the Docs 社区版(Community)把一… · 2026/9/27 9:09:47
做网站找王思奇防坑指南:5大高频疑问拆解 做网站找王思奇防坑指南:5大高频疑问拆解 找建站公司最怕什么?怕被坑高价,怕功能缩水,怕后期维护坐地起价。这种焦虑在四川乃至全国的中小企业主中太普遍了。很多人搜“做网站找王思奇”,并不是因为他是明星,而是想通过具体的人或团队来规避传统外包公… · 2026/9/27 9:09:41
Humanizer 流式日期 API 详解:InDate.Ten 实现 10 天/周/月/年的 DateOnly 日期计算 开发工具 【免费下载链接】Humanizer Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities 项目地址: https://gitcode.com/gh_mirrors/hu/Humanizer 点击查看 免费下载 Human… · 2026/9/27 9:55:27
网站建设期末作业选哪家技术栈最稳?不会代码也能拿高分 网站建设期末作业选哪家技术栈最稳?不会代码也能拿高分 自己完全不懂代码,却被老师甩了个“独立开发响应式网站”的期末作业,是不是瞬间头皮发麻?这种时候别急着哭,也别盲目去搜“网站建设哪家好”,因为对于学生党来说,市面上那些动辄几千块的企业级方… · 2026/9/27 9:55:14
PX4 DebugArray UORB 消息详解:从字段定义到 Mavlink 调试链路实战 嵌入式物联网机器人自动驾驶智能硬件 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 点击查看 免费下载 PX4 的 debug_array 是一类专用于批量浮点调试数据的 UORB 主题,允许开发者… · 2026/9/27 9:55:02
APScheduler 版本迁移指南:从 v1/v2/v3 全面升级到 v4.0 的架构变化与实践要点 任务调度后端 【免费下载链接】apscheduler Task scheduling library for Python 项目地址: https://gitcode.com/gh_mirrors/ap/apscheduler 点击查看 免费下载 导读
本文以官方迁移文档 docs/migration.rst 为主线,系统梳理 APScheduler(… · 2026/9/27 9:55:02
Geyser 基岩版资源包完整指南:自动生成并下发自定义材质包,无需手动转换 Geyser 基岩版资源包完整指南:自动生成并下发自定义材质包,无需手动转换 【免费下载链接】Geyser A bridge/proxy allowing you to connect to Minecraft: Java Edition servers with Minecraft: Bedrock Edition. 项目地址: https://gitcode.com/GitH… · 2026/9/27 9:54:56
一夜两轮价格战,token 价格腰斩:Agent 时代工程师的省钱实战 一夜两轮价格战,token 价格腰斩:Agent 时代工程师的省钱实战9 月底这波价格战打得比双 11 还狠。但真正的重点不是"又便宜了",而是:当你的 Agent 一天烧掉过去一个月的 token,定价降一半可能还是亏的。这篇文… · 2026/9/27 9:54:56
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01