如何在WSL/Ubuntu中为sequelize-cli等命令添加自定义自动补全
自定义sequelize-cli Bash自动补全实现方案(Ubuntu/WSL适用)
以下配置可直接实现你需要的命令模板补全效果,无需额外依赖:
步骤1:添加补全配置
打开~/.bashrc文件(WSL环境同样操作),在文件末尾添加如下代码:
_sequelize_cli_completions() { # 仅处理npx调用sequelize-cli的场景,不影响npx其他命令的补全 if [[ "${COMP_WORDS[1]}" != "sequelize-cli" ]]; then return fi local cur_input="${COMP_WORDS[COMP_CWORD]}" # 自定义命令模板,可按需新增/删除条目 local cmd_templates=( "model:generate --name SingularModelNameHere --attributes attribute1Name:datatype,attribute2Name:dataType" "seed:generate --name <descriptiveName>" "db:migrate" "db:migrate:undo" "db:migrate:undo:all" "db:seed:all" "db:seed:undo" "db:seed:undo:all" "init" ) # 生成匹配当前输入的补全选项 COMPREPLY=($(compgen -W "${cmd_templates[*]}" -- "$cur_input")) return 0 } # 绑定补全函数到npx命令 complete -F _sequelize_cli_completions npx
步骤2:生效配置
执行以下命令让配置立即生效:
source ~/.bashrc
如果你使用zsh作为默认终端,把上面的代码添加到~/.zshrc后执行source ~/.zshrc即可。
使用说明
- 输入
npx sequelize-cli(末尾带空格)后按Tab,会列出所有预定义的命令模板,可直接选择补全 - 输入
npx sequelize-cli s后按Tab,会自动匹配到以s开头的seed:generate --name <descriptiveName>模板,按回车即可完成补全,之后直接修改占位符内容即可 - 要新增自定义补全模板,只需往
cmd_templates数组里添加对应的命令字符串即可,无需修改其他逻辑
注意事项
- 如果之前已经为npx配置过其他补全规则,将上述函数内的sequelize-cli补全逻辑合并到原有补全函数即可,不要重复绑定complete到npx
- 模板内的占位符补全后可直接选中修改,无需手动删除整段内容
内容的提问来源于stack exchange,提问作者Jay Spencer
相关产品推荐
相关产品推荐

