シェル補完を有効にする
Dotweave の bash、zsh、fish、PowerShell 向けの補完スクリプトを導入します。
タブ補完はコマンドとフラグを提案し、dotweave track ではファイルシステムのパスも提案します。このガイドでは、生成された補完スクリプトを bash、zsh、fish、PowerShell のいずれかに組み込みます。Tab を押すたびにスクリプトが dotweave バイナリを名前で呼び出すため、dotweave がすでに PATH にあることが前提です。
1. 補完スクリプトを出力する
dotweave autocomplete <shell> はスクリプトを stdout に出力し、インストールは何も行いません。読み込む内容を確かめるため、まず一度実行してください。
dotweave autocomplete bash
指定できるシェル名は bash、zsh、fish、powershell です。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 を押します。シェルが pull と push を候補として表示します。
サブコマンドの一覧は dotweave autocomplete、パス補完が効くコマンドは dotweave trackを参照してください。