Files
mvt/docs/command_completion.md
T
Donncha Ó Cearbhaill 36d1b27c4c Move shell completion to the mvt command and generate one script for every MVT command
Setting up shell completion had nothing to do with the acquisition of one
platform, yet it was a command of mvt-ios and mvt-android, each
generating the script of the program it ran under only. Completion now
leaves the platform CLIs for mvt, which emits one script covering mvt,
mvt-ios and mvt-android, installed as a single file loaded when the shell
starts. Click names the completion function of each program after the
program, so the three scripts concatenate without colliding, and fish
takes the file in conf.d rather than one named after a single command.

With one script there is nothing left for the platform commands to
generate, so their completion command goes, and with it the banner
suppression which was keyed on the command name: mvt-ios and mvt-android
now print the banner for every command they have.

The long help line says which commands the completion covers, so a
short_help keeps "mvt --help" from truncating it.
2026-08-26 12:43:12 +02:00

2.1 KiB

Command Completion

MVT utilizes the Click library for creating its command line interface.

Click provides tab completion support for Bash (version 4.4 and up), Zsh, and Fish.

To enable it, you need to register a completion script with your shell, which varies depending on the shell you are using.

mvt completion generates one script which covers mvt, mvt-ios and mvt-android. The following describes how to generate that script and add it to your shell configuration.

Note: You will need to start a new shell for the changes to take effect.

For Bash

# Generate the bash completion script
mvt completion bash > ~/.mvt-complete.bash

Add the following to ~/.bashrc:

# source the mvt completion script
[ -f ~/.mvt-complete.bash ] && . ~/.mvt-complete.bash

For Zsh

# Generate the zsh completion script
mvt completion zsh > ~/.mvt-complete.zsh

Add the following to ~/.zshrc:

# source the mvt completion script
[ -f ~/.mvt-complete.zsh ] && . ~/.mvt-complete.zsh

For Fish

# Generate the fish completion script
mkdir -p ~/.config/fish/conf.d
mvt completion fish > ~/.config/fish/conf.d/mvt-completion.fish

Fish loads the files in ~/.config/fish/conf.d automatically.

Automatic Installation

MVT can write the completion file and update the relevant shell configuration for Bash and Zsh when you pass --install:

mvt completion bash --install

Replace bash with zsh or fish as needed. For Fish, --install writes the completion file into ~/.config/fish/conf.d and changes no shell configuration.

!!! note

Earlier versions generated one script per command, with `mvt-ios completion`
and `mvt-android completion`. Files written by them keep working. When you
switch to the single script, remove the old files and the lines which load
them from your shell configuration.

For more information, visit the official Click Docs.