如何完成 rustup/cargo 命令?

6

我已经使用官方安装脚本安装了rustup+rust+cargo。

如何启用shell自动完成功能,以便在终端中输入cargo <TAB>并查看可能的命令,例如cargo check

4个回答

13
你可以运行命令rustup completions并按照说明操作。例如,对于bash,你可以运行:
mkdir -p ~/.local/share/bash-completion/completions

rustup completions bash       > ~/.local/share/bash-completion/completions/rustup
rustup completions bash cargo > ~/.local/share/bash-completion/completions/cargo

rustupcargo生成补全。有关详细信息,请参阅rustup completions,例如配置zshfish补全。


1

@AnonymousDuck的回答原则上是一个不错的方法。 "扩展"完成的缺点是,人们应该记得在更新后重新生成扩展形式,以便它们与相应的工具保持最新。

一种按需实现这一点的方法(在第一次调用时牺牲几毫秒)是:

printf '. <(rustup completions bash)\n'       >~/.local/share/bash-completion/completions/rustup
printf '. <(rustup completions bash cargo)\n' >~/.local/share/bash-completion/completions/cargo

一个很小的警告,很少出现的问题是使用 <(...) 需要 shell 处于 POSIX 模式。

1

这将使完成函数保持最新状态。

bash$ cat ~/.local/share/bash-completion/completions/rust
if type -P rustup > /dev/null; then
    source <( rustup completions bash )          # for rustup
    source <( rustup completions bash cargo )    # for cargo
fi

0
如果你正在使用Oh My Zsh,你可以安装rust插件来为rustc、rustup和cargo添加自动补全功能。 要这样做,请在你的.zshrc文件中的插件列表中添加rust。
plugins=(... rust)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接