gwm-cli 1.6.1

git worktree manager — TUI + CLI, native libgit2, per-repo bootstrap
Documentation
---
title: Complétions de shell
description: "`gwm completions <shell>` et complétion dynamique des noms de worktree via `gwm list --format=names`."
---

# Complétions de shell

`gwm completions <shell>` affiche un script de complétion statique (généré à partir de l'arbre d'arguments clap vivant, donc il ne dérive jamais des sous-commandes réelles). Shells pris en charge : `zsh`, `bash`, `fish`, `powershell`, `elvish`.

## installation

```bash
# zsh — drop into the first writable fpath entry
gwm completions zsh > "${fpath[1]}/_gwm"

# bash — system-wide
gwm completions bash | sudo tee /etc/bash_completion.d/gwm > /dev/null
# bash — per-user
gwm completions bash > ~/.local/share/bash-completion/completions/gwm

# fish
gwm completions fish > ~/.config/fish/completions/gwm.fish

# PowerShell — load into the current session (ephemeral)
gwm completions powershell | Out-String | Invoke-Expression
# PowerShell — persist by appending to $PROFILE
gwm completions powershell | Out-File -Append -Encoding utf8 $PROFILE

# elvish
gwm completions elvish > ~/.config/elvish/lib/gwm.elv
```

Ouvrez un nouveau shell (ou faites `source` de votre fichier rc) et la complétion par tabulation est active pour chaque sous-commande, flag et value-enum (par ex. `gwm list --format=<TAB>` propose `table` / `names`).

## complétion dynamique des noms de worktree

Le script statique connaît les sous-commandes et les flags mais **pas** les worktrees de votre dépôt — ceux-ci changent à chaque fois que vous lancez `gwm create / remove`. Branchez un completer personnalisé à `gwm list --format=names` pour une complétion en direct de l'argument nom-de-worktree sur `path` / `cd` / `remove` / `bootstrap` / `sync` / `tmux` / `zellij` / `exec` / `clean` (qui résolvent tous leur positionnel via le même matcher flou).

### zsh

```zsh
_gwm_worktrees() { compadd $(gwm list --format=names 2>/dev/null) }
compdef _gwm_worktrees gwm-path gwm-cd gwm-remove gwm-bootstrap gwm-sync gwm-tmux gwm-zellij gwm-exec gwm-clean
```

(`gwm-path`, `gwm-cd`, etc. sont les noms de fonction auto-générés que le completer statique `_gwm` enregistre par sous-commande.)

### bash

```bash
_gwm_worktrees() {
  local cur="${COMP_WORDS[COMP_CWORD]}"
  COMPREPLY=($(compgen -W "$(gwm list --format=names 2>/dev/null)" -- "$cur"))
}
complete -F _gwm_worktrees -o default gwm
```

### fish

```fish
complete -c gwm -n "__fish_seen_subcommand_from path cd remove bootstrap sync tmux zellij exec clean" \
  -f -a "(gwm list --format=names 2>/dev/null)"
```

## voir aussi

- [Premiers pas → Shell init]/fr/getting-started/shell-init — le wrapper `gcd` qui accompagne `completions`
- [CLI → Référence des sous-commandes]/fr/cli/reference#gwm-list---formattablenames---detect-pr — la sortie `--format=names` utilisée par les completers