Shell 补全
Backlog.md 内置智能 Shell 补全功能,支持 bash、zsh、fish 和 PowerShell。启用后,在终端中输入 backlog 命令时按 Tab 键,即可自动补全子命令、选项和动态值,大幅提升操作效率。
一键安装补全脚本
Backlog.md 提供自动检测和安装功能,根据当前使用的 Shell 类型自动配置补全脚本:
backlog completion install
执行后,工具会检测你的 Shell 环境,将补全脚本安装到对应位置:
| Shell | 安装位置 |
|---|---|
| bash | ~/.bashrc 或 ~/.bash_profile |
| zsh | ~/.zshrc |
| fish | ~/.config/fish/completions/ |
| PowerShell | $PROFILE 文件 |
安装完成后,需要重新加载 Shell 配置文件或新开一个终端窗口,补全功能即可生效。
支持的 Shell
Bash
Bash 补全脚本支持命令、子命令和选项补全。动态值补全依赖 bash-completion 包。在大多数 Linux 发行版中,该包已预装;如未安装,可通过包管理器获取:
# Debian/Ubuntu
sudo apt-get install bash-completion
# macOS (Homebrew)
brew install bash-completion
Zsh
Zsh 用户可直接使用补全功能,无需额外依赖。Zsh 的补全系统功能丰富,支持菜单选择和描述显示,体验最为完整。
Fish
Fish 的补全脚本放置在 ~/.config/fish/completions/backlog.fish,Fish 会自动加载该目录下的所有补全定义。Fish 补全支持描述文本和参数高亮。
PowerShell
PowerShell 补全通过注册 Register-ArgumentCompleter 命令实现。安装脚本会自动修改 PowerShell 的配置文件(可通过 $PROFILE 查看路径)。如需手动注册,可参考补全脚本中的注册逻辑。
动态补全能力
Backlog.md 的补全系统不仅支持静态命令和选项,还能从当前项目中动态提取实际数据:
实际任务 ID
输入 backlog task edit 后按 Tab,补全系统会列出当前项目中所有有效的任务 ID:
backlog task edit <TAB>
# 显示:task-1 task-2 task-3 doc-1 ...
状态值
输入 -s 或 --status 后按 Tab,补全系统会从项目配置中读取状态列表:
backlog task list -s <TAB>
# 显示:To Do In Progress Done
标签
输入 -l 或 --labels 后按 Tab,补全系统会汇总所有已使用的标签:
backlog task create "新功能" -l <TAB>
# 显示:bug feature docs backend
负责人
输入 -a 或 --assignee 后按 Tab,补全系统会列出所有现有任务中出现过的负责人:
backlog task edit 1 -a <TAB>
# 显示:@alice @bob @team-lead
动态补全的数据来源于当前工作目录下的 Backlog.md 项目。如果在没有 Backlog.md 项目的目录中执行命令,动态值补全会回退到空列表或默认值,但静态命令补全仍然可用。
手动安装补全脚本
如果自动安装遇到问题,或需要将补全脚本部署到非标准位置,可以手动安装。Backlog.md 在安装包中内置了各 Shell 的补全脚本源码。
查找补全脚本
补全脚本随 npm 包一起安装,位于包目录的 completions/ 文件夹下:
# 查找全局安装的 backlog.md 包路径
npm root -g
# 补全脚本位于:
# <npm-root>/backlog.md/completions/backlog.bash
# <npm-root>/backlog.md/completions/backlog.zsh
# <npm-root>/backlog.md/completions/backlog.fish
# <npm-root>/backlog.md/completions/backlog.ps1
Bash 手动安装
将以下内容添加到 ~/.bashrc:
source /path/to/backlog.bash
Zsh 手动安装
将补全脚本复制到 Zsh 的函数搜索路径,例如 ~/.zsh/functions/:
cp /path/to/backlog.zsh ~/.zsh/functions/_backlog
确保 ~/.zshrc 中的 fpath 包含该目录:
fpath=(~/.zsh/functions $fpath)
Fish 手动安装
将补全脚本复制到 Fish 的补全目录:
cp /path/to/backlog.fish ~/.config/fish/completions/backlog.fish
PowerShell 手动安装
在 PowerShell 配置文件中添加补全注册代码。首先确定配置文件路径:
$PROFILE
如果文件不存在,先创建它:
New-Item -Path $PROFILE -ItemType File -Force
然后将 backlog.ps1 中的内容追加到配置文件中。
完成手动安装后,重新加载 Shell 配置文件或开启新终端窗口即可生效。