runtimeterror/content/posts/enable-tanzu-cli-auto-completion-bash-zsh/index.md
2024-01-18 16:06:53 -06:00

3.1 KiB

title date description featured draft toc usePageBundles thumbnail codeLineNumbers categories tags comments
Enable Tanzu CLI Auto-Completion in bash and zsh 2022-02-01T08:34:47-06:00 How to configure your Linux shell to help you do the Tanzu false false false true tanzu-completion.png false VMware
vmware
linux
tanzu
kubernetes
shell
true

Lately I've been spending some time getting more familiar with VMware's Tanzu Community Edition Kubernetes distribution, but I'm still not quite familiar enough with the tanzu command line. If only there were a better way for me to discover the available commands for a given context and help me type them correctly...

Oh, but there is! You see, one of the available Tanzu commands is tanzu completion [shell], which will spit out the necessary code to generate handy context-based auto-completions appropriate for the shell of your choosing (provided that you choose either bash or zsh, that is).

Running tanzu completion --help will tell you what's needed, and you can just copy/paste the commands appropriate for your shell:

# Bash instructions:

  ## Load only for current session:
  source <(tanzu completion bash)

  ## Load for all new sessions:
  tanzu completion bash >  $HOME/.tanzu/completion.bash.inc
  printf "\n# Tanzu shell completion\nsource '$HOME/.tanzu/completion.bash.inc'\n" >> $HOME/.bash_profile

# Zsh instructions:

  ## Load only for current session:
  source <(tanzu completion zsh)

  ## Load for all new sessions:
  echo "autoload -U compinit; compinit" >> ~/.zshrc
  tanzu completion zsh > "${fpath[1]}/_tanzu"

So to get the completions to load automatically whenever you start a bash shell, run:

tanzu completion bash >  $HOME/.tanzu/completion.bash.inc # [tl! .cmd:1]
printf "\n# Tanzu shell completion\nsource '$HOME/.tanzu/completion.bash.inc'\n" >> $HOME/.bash_profile

For a zsh shell, it's:

echo "autoload -U compinit; compinit" >> ~/.zshrc # [tl! .cmd:1]
tanzu completion zsh > "${fpath[1]}/_tanzu"

And that's it! The next time you open a shell (or source your relevant profile), you'll be able to [TAB] your way through the Tanzu CLI!

Tanzu CLI completion in zsh