# Shell Completion

```bash
yq shell-completion zsh
```

Prints to StdOut a shell completion script for zsh shell.

### Bash (default)

```bash
source <(yq shell-completion bash)
```

#### To load completions for each session, execute once:

Linux:

```bash
yq shell-completion bash > /etc/bash_completion.d/yq 
```

MacOS:

```bash
yq shell-completion bash > /usr/local/etc/bash_completion.d/yq
```

### zsh

If shell completion is not already enabled in your environment you will need to enable it. You can execute the following once:

```bash
echo "autoload -U compinit; compinit" >> ~/.zshrc
```

#### To load completions for each session, execute once:

```bash
yq shell-completion zsh > "${fpath[1]}/_yq"
```

You will need to start a new shell for this setup to take effect.

### fish

```bash
yq shell-completion fish | source
```

#### To load completions for each session, execute once:

```
yq shell-completion fish > ~/.config/fish/completions/yq.fish
```

### PowerShell

```bash
yq shell-completion powershell
```

Users need PowerShell version 5.0 or above, which comes with Windows 10 and can be downloaded separately for Windows 7 or 8.1. They can then write the completions to a file and source this file from their PowerShell profile, which is referenced by the $Profile environment variable.
