Windows 上 Git Bash 自动补全示例
什么是 completion?
completion 是指在命令行中输入命令时,自动补全建议的功能,即双击 Tab 键显示的提示效果。例如 Linux 中经常使用的 systemctl 命令大部分情况下都会 systemctl res 然后双击 Tab 键就完成了输入,这就是 completion。
你可能已经听过了 bash-completion 项目,它是一个 bash 自动补全框架,提供了许多 常用命令 的自动补全脚本,使用非常方便。
很多命令行工具都支持自动补全(或可生成自动补全脚本),进而方便命令行使用。
Windows 下 Git Bash 的自动补全脚本位置在 ~/bash_completion.d/ 目录(该目录是 Git Bash 自动读取的,不需要任何额外配置),里面的文件必须以 .bash 后缀结尾。
deno
以 deno 为例,假如现在在 Windows 上刚安装的 deno 或者已经安装的,但是 bash 中输入 deno in,然后双击 Tab 键,此时没有任何相关命令提示,出现的将是所在目录或文件,因为现在还没有相应的 completion 脚本。
~/bash_completion.d/xxx.bash 中的后缀是 Git 默认要求的,如果不使用后缀,需在 ~/.bashrc 中手动添加 source,否则 Git Bash 不会自行加载。
# 生成 bash 类型的 completion 脚本到 ~/bash_completion.d 目录中
# 文件名为 deno.bash
deno completion bash > ~/bash_completion.d/deno.bash
然后重新打开 Git Bash,再次输入 deno in,然后双击 Tab 键。
更加通用的 completion 配置
mkdir -p /etc/bash_completion
把所有的 completion 脚本放到此目录中,然后编辑 ~/.bashrc,添加以下内容后在 bash 中执行 source ~/.bashrc 即可:
export PATH=$PATH
if [ -d /etc/bash_completion ]; then
for file in /etc/bash_completion/*; do
[ -f "$file" ] && . "$file"
done
fi

说些什么吧!