如何在Zsh终端中实现程序命令行参数的Tab键补全
实现Zsh中自定义程序的命令行参数补全
临时生效方案(仅当前终端会话可用)
直接在终端执行以下命令,给./main添加补全规则:
compdef '_arguments "1: :(hel)"' ./main
执行完成后,输入./main (注意末尾空格)再按Tab键,就能看到可选参数hel了。
永久生效方案(所有终端会话通用)
- 先创建Zsh补全文件的存放目录(如果不存在的话):
mkdir -p ~/.zsh/completions
- 在该目录下创建名为
_main的补全配置文件,内容如下:
#compdef main _arguments \ '1: :((hel\:"输出hello"))'
注:
hel\:"输出hello"里的说明文字是可选的,不需要的话可以简化成'1: :(hel)'。
- 打开你的Zsh配置文件(通常是
~/.zshrc),添加以下内容让Zsh加载自定义补全:
fpath=(~/.zsh/completions $fpath) autoload -Uz compinit && compinit
- 重新加载配置文件或重启终端,使设置生效:
source ~/.zshrc
之后任何终端会话里,输入./main 按Tab都能调出hel参数补全。
扩展说明
如果你的程序后续新增其他参数,比如foo,只需要把补全规则里的参数列表扩展即可,例如改成'1: :(hel foo)'。
内容的提问来源于stack exchange,提问作者ecjb
相关产品推荐
相关产品推荐

