@cli-prompts/multiline

中文文档
1.0.0发布于 2025/11/16MITTypeScriptESM + CJS近 30 天下载 2797

用于Node.js CLI的可制作多行文本提示. Flicker-free,光滑,并支持光标完全移动,并带有丰富的ANSI渲染. 用来填补其他大图书馆从未覆盖的空白.

中文使用文档
文档目录7 节
  1. * 特性
  2. * 安装
  3. 使用量
  4. & API 选项
  5. {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF…
  6. QQ 密钥绑定
  7. 许可证

@cli-promts/多线

npm version License: MIT

用于命令行应用程序的现代、无闪烁、内容丰富的多行文本输入.

你曾经感到沮丧吗 inquirer 其它伟大的库缺少适当的,平滑的多行文本输入 ? 这个包解决了这个问题。 由地上而上设计的独立组件,提供终端的一等"文本区"体验.

Multiline Demo GIF

* 特性

  • 真多行编辑 : 在终端里有类似本地文字区的体验.
  • 直观密钥绑定: Enter 提交, Shift+Enter 为新行.
  • 高级编辑 : 文字导航( W)Ctrl+Left/Right)和删除(Alt+Backspace, (中文(简体) ), Ctrl+W) (中文(简体) ).
  • 强力粘贴支持 : 可靠地粘贴多行文本而不意外提交 .
  • 丰富的特性集 : 支持占位符、默认值、验证和最大长度.
  • 动画自旋器 : 动态感觉的可选加载自旋器 .
  • 深度自定义 : 更改前缀,颜色,以及更简单的样式对象.
  • 自由飞翔: 由智能原子制成的回路所建.
  • 轻量级( M) : 零运行时间依赖性,用 TypeScript 写出.
  • 战斗测试: 高单位测试覆盖率.

* 安装

# pnpm
pnpm add @cli-prompts/multiline

# npm
npm install @cli-prompts/multiline

# yarn
yarn add @cli-prompts/multiline

# bun
bun add @cli-prompts/multiline

使用量

import { multiline, AbortError } from '@cli-prompts/multiline';

async function main() {
  try {
    const description = await multiline({
      prompt: 'Please enter your project description:',
      placeholder: 'My project is about...\nIt does really cool things!',
    });

    console.log('\nYour description:\n ', description);
  } catch (error) {
    if (error instanceof AbortError) {
      // The user aborted the prompt (Ctrl+C).
      // The component already printed a cancellation message.
    } else {
      console.error('An unexpected error occurred:', error);
    }
  }
}

main();

& API 选项

这个 multiline 函数接受简单提示的字符串,或完全配置的选项对象.

multiline(options: MultilineOptions): Promise<string>

选项类型默认说明
promptstring需求问取取用者所取之正问.
defaultstring''预添加输入的默认值 。 支助 \n 为新行.
placeholderstringundefined当输入为空时要显示的占位符文本 。 支助 \n 为新行.
instructionstring | booleantrue输入下面显示的帮助信息 。 设定为 false 要隐藏,或者要覆盖字符串.
requiredbooleanfalse若为 true,防止在输入为空或仅为空白时提交.
validate(value: string) => boolean | stringundefined用于验证提交时输入的函数。 返回时 true 如果有效,或错误消息的字符串.
maxLengthnumberundefined允许的最大字符数 。 提供实时反馈.
spinnerbooleanfalse若为 true,替换 ? 前缀有动画自旋器.
styleobject{...}用于自定义前缀和颜色的对象 。 见下"造型"一节.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}史蒂林 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢

你可以自定义的外观和感觉 通过一个 style 对象。 您只需要提供您想要覆盖的属性 .

示例

import chalk from 'chalk';

multiline({
  prompt: 'Enter commit message',
  style: {
    prefixes: {
      prompt: '🤔',
      success: '✅',
    },
    colors: {
      prompt: 'yellow', // Use a predefined color name
      finalAnswer: str => chalk.italic.hex('#888')(str), // Or use a custom function
    },
  },
});

样式对象结构 :

{
  prefixes?: {
    prompt?: string;    // default: '?'
    success?: string;   // default: '✔'
    error?: string;     // default: '✖'
    input?: string;     // default: '›'
  };
  colors?: {
    prompt?: ColorFn | ColorName;      // default: 'cyan'
    success?: ColorFn | ColorName;     // default: 'green'
    error?: ColorFn | ColorName;       // default: 'red'
    instruction?: ColorFn | ColorName; // default: 'gray'
    placeholder?: ColorFn | ColorName; // default: 'gray'
    finalAnswer?: ColorFn | ColorName; // default: 'cyan'
    inputPrefix?: ColorFn | ColorName; // default: 'gray'
    promptTitle?: ColorFn | ColorName; // default: 'bold'
  };
}

ColorName 可以是: 'black', (中文(简体) ), 'red', (中文(简体) ), 'green', (中文(简体) ), 'yellow', (中文(简体) ), 'blue', (中文(简体) ), 'magenta', (中文(简体) ), 'cyan', (中文(简体) ), 'white', (中文(简体) ), 'gray'。 。 。 . ColorFn 是函数 (str: string) => string。 。 。 .

QQ 密钥绑定

密钥行动
Enter提交输入
Shift + 键 Enter 编号 : Alt + 键 Enter插入新行
Ctrl + 键 C中止提示
Backspace删除左边的字符
Delete删除字符右边
Alt + 键 Backspace删除左字
Ctrl + 键 W删除左字
Arrow Keys移动光标
Ctrl + 键 Left移动到上一个单词
Ctrl + 键 Right移动到下一个单词

许可证

这个项目根据麻省理工学院许可证颁发——见 自由主义 详细文件.

版本与发布记录

@cli-prompts/multiline 共发布 1 个版本,首次发布于 2025/11/16;过去 12 个月发布了 1 个版本。

版本发布日期距今
1.0.0latest2025/11/1611 个月前

关于 @cli-prompts/multiline 的常见问题

@cli-prompts/multiline 是什么?

用于Node.js CLI的可制作多行文本提示. Flicker-free,光滑,并支持光标完全移动,并带有丰富的ANSI渲染. 用来填补其他大图书馆从未覆盖的空白.

如何安装 @cli-prompts/multiline?

在项目目录运行 npm install @cli-prompts/multiline,或使用 pnpm add / yarn add / bun add。

@cli-prompts/multiline 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cli-prompts/multiline 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cli-prompts/multiline 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cli-prompts/multiline 可以商用吗?

@cli-prompts/multiline 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cli-prompts/multiline 的下载量有多少?

根据 npm 官方下载统计,@cli-prompts/multiline 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,797 次,日均约 93 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cli-prompts/multiline 还在维护吗?

最新版本 1.0.0 发布于 2025/11/16(11 个月前);至今共发布 1 个版本,其中过去 12 个月发布了 1 个;首次发布于 2025/11/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。