シェル補完を有効にする

Dotweave の bash、zsh、fish、PowerShell 向けの補完スクリプトを導入します。

タブ補完はコマンドとフラグを提案し、dotweave track ではファイルシステムのパスも提案します。このガイドでは、生成された補完スクリプトを bash、zsh、fish、PowerShell のいずれかに組み込みます。Tab を押すたびにスクリプトが dotweave バイナリを名前で呼び出すため、dotweave がすでに PATH にあることが前提です。

1. 補完スクリプトを出力する

dotweave autocomplete <shell> はスクリプトを stdout に出力し、インストールは何も行いません。読み込む内容を確かめるため、まず一度実行してください。

dotweave autocomplete bash

指定できるシェル名は bashzshfishpowershell です。bash のスクリプトは最後に complete -o default -o nospace で補完を登録します。そのためディレクトリの候補に不要な末尾スペースが付かず、そのまま続けて入力できます。zsh のスクリプトはさらに precmd フックを設置し、プロンプトごとに補完を再登録します。あとから走る compinit が登録を静かに置き換えてしまうのを防ぎます。

補完が扱うのはコマンドとフラグです。-y のような 1 文字のフラグ別名は意図的に出力から除かれ、長い形式だけが提案されます。

2. シェルのプロファイルから読み込む

各シェルの起動ファイルでスクリプトを評価すると、新しいセッションごとに補完が使える状態になります。

bash では ~/.bashrc に次の行を追加します。

eval "$(dotweave autocomplete bash)"

zsh では ~/.zshrc に次の行を追加します。

eval "$(dotweave autocomplete zsh)"

fish では ~/.config/fish/config.fish に次の行を追加します。

dotweave autocomplete fish | source

PowerShell では $PROFILE が指すファイルに次の行を追加します。

dotweave autocomplete powershell | Out-String | Invoke-Expression

PowerShell で Out-String が必要なのは、スクリプトが複数行にわたるからです。行をそのまま Invoke-Expression に渡すと 1 行ずつ評価され、閉じていないブロックで失敗します。

結果を確認する

起動ファイルが読み込まれるように新しいシェルを開き、dotweave pu と入力して Tab を押します。シェルが pullpush を候補として表示します。

サブコマンドの一覧は dotweave autocomplete、パス補完が効くコマンドは dotweave trackを参照してください。