Skip to main content
Version: dev

Setting up shell completions

The nargo binary provides a command to generate shell completions:

nargo generate-completion-script [shell]

where shell must be one of bash, elvish, fish, powershell, and zsh.

Below we explain how to install them in some popular shells.

Installing Zsh Completions

If you have oh-my-zsh installed, you might already have a directory of automatically loading completion scripts — .oh-my-zsh/completions. If not, first create it:

mkdir -p ~/.oh-my-zsh/completions`

Then copy the completion script to that directory:

nargo generate-completion-script zsh > ~/.oh-my-zsh/completions/_nargo

Without oh-my-zsh, you’ll need to add a path for completion scripts to your function path, and turn on completion script auto-loading. First, add these lines to ~/.zshrc:

fpath=(~/.zsh/completions $fpath)
autoload -U compinit
compinit

Next, create a directory at ~/.zsh/completions:

mkdir -p ~/.zsh/completions

Then copy the completion script to that directory:

nargo generate-completion-script zsh > ~/.zsh/completions/_nargo

Installing Bash Completions

If you have bash-completion installed, you can just copy the completion script to the /usr/local/etc/bash_completion.d directory:

nargo generate-completion-script bash > /usr/local/etc/bash_completion.d/nargo

Without bash-completion, you’ll need to source the completion script directly. First create a directory such as ~/.bash_completions/:

mkdir ~/.bash_completions/

Copy the completion script to that directory:

nargo generate-completion-script bash > ~/.bash_completions/nargo.bash

Then add the following line to ~/.bash_profile or ~/.bashrc:

source ~/.bash_completions/nargo.bash

Installing Fish Completions

Copy the completion script to any path listed in the environment variable $fish_completion_path. For example, a typical location is ~/.config/fish/completions/nargo.fish:

nargo generate-completion-script fish > ~/.config/fish/completions/nargo.fish