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

如何去除inquirer.js列表提示符中的?和(use arrow keys)提示

如何在inquirer.js的list提示符中移除?和(use arrow keys)提示

要移除inquirer.js list类型提示符默认的?前缀和(use arrow keys)操作提示,需要分两步处理:

1. 移除?前缀

在prompt配置中添加prefix: ''即可覆盖默认的?前缀:

async question1() {
    const answers = await inquirer.prompt({
        name: 'question1',
        type: 'list',
        message: '\n',
        prefix: '', // 移除?前缀
        choices: [
            'Answer 1',
            'Answer 2',
            'Answer 3',
        ],        
    })

    return answers.question1;
}

2. 移除(use arrow keys)提示

官方没有提供直接关闭该提示的配置项,需要自定义list prompt来修改渲染逻辑:

首先,继承原有的ListPrompt并重写render方法,去掉帮助文本的渲染:

const inquirer = require('inquirer');
const ListPrompt = require('inquirer/lib/prompts/list');

// 自定义ListPrompt,移除操作提示
class CustomListPrompt extends ListPrompt {
  render(error) {
    let content = this.getQuestion();
    let bottomContent = '';

    if (this.status === 'answered') {
      content += this.style.success(this.answer);
    } else {
      // 仅渲染选项,不添加操作提示
      const choicesStr = this._getChoices();
      content += choicesStr;
    }

    if (error) {
      bottomContent = this.style.error(error);
    }

    this.screen.render(content, bottomContent);
  }
}

// 注册自定义prompt类型
inquirer.registerPrompt('custom-list', CustomListPrompt);

之后使用自定义的custom-list类型替代原有的list类型:

async question1() {
    const answers = await inquirer.prompt({
        name: 'question1',
        type: 'custom-list', // 使用自定义prompt
        message: '\n',
        prefix: '', // 移除?前缀
        choices: [
            'Answer 1',
            'Answer 2',
            'Answer 3',
        ],        
    })

    return answers.question1;
}

这样就能完全移除不需要的提示文本,只显示你定义的选项内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:47:36