タブ補完 (winget)
winget コマンド ライン ツールには、状況依存のタブ補完を提供する complete
コマンドが用意されています。 現在のコマンド ラインの状態に応じて、コマンド名、引数名、および引数値の入力補完がサポートされます。
タブ補完の有効化
winget でタブ補完を有効にするには、PowerShell で $PROFILE
に次のスクリプトを追加する必要があります。
PowerShell を開き、次のコマンドを入力して、メモ帳で
$PROFILE
を開きます。notepad.exe $PROFILE
次のスクリプトをコピーして、メモ帳で開いた
$PROFILE
ファイルに貼り付けます。Register-ArgumentCompleter -Native -CommandName winget -ScriptBlock { param($wordToComplete, $commandAst, $cursorPosition) [Console]::InputEncoding = [Console]::OutputEncoding = $OutputEncoding = [System.Text.Utf8Encoding]::new() $Local:word = $wordToComplete.Replace('"', '""') $Local:ast = $commandAst.ToString().Replace('"', '""') winget complete --word="$Local:word" --commandline "$Local:ast" --position $cursorPosition | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } }
スクリプトを含む
$PROFILE
を保存します。 次に、PowerShell を閉じてから再度開きます。 PowerShell を再度開くと、winget のタブ補完が有効になります。
タブ補完の例
タブ (⇥
) を繰り返し押すと、使用可能な値が循環します。
入力 | 結果 | 理由 |
---|---|---|
winget ⇥ |
winget install |
install はルートの下の最初のコマンドです |
winget sh⇥ |
winget show |
show は、sh で始まる最初のコマンドです |
winget source l⇥ |
winget source list |
list は、ソースの l で始まる最初のサブコマンドです |
winget -⇥ |
winget --version |
--version はルートに対して定義された最初の引数です |
winget install power⇥ |
winget install "Power Toys" |
"Power Toys" は、ID、名前、または Moniker の先頭が power の最初のパッケージです。 |
winget install "Power Toys" --version ⇥ |
winget install "Power Toys" --version 0.19.2 |
0.19.2 は、執筆時点での Power Toys の最高バージョンです |
コマンド リファレンス
complete コマンドは、3 つの必須引数を取ります。
引数 | 説明 |
---|---|
--word |
補完中の現在の単語。カーソルが配置されているトークン。 空にしてカーソルに現在の値がないことを示すことができますが、指定されている場合は、コマンド ラインに部分文字列として表示する必要があります。 |
--commandline |
winget を含む、現在のコマンド ライン全体。 上の例を参照してください。この引数には、タブ文字 (⇥ ) 以外のすべてを指定する必要があります。 |
--position |
コマンド ライン内のカーソルの現在位置。 コマンド ライン文字列の長さより大きくして、末尾にあることを示すことができます。 |
単語の値を指定すると、補完は置換モードで動作します。 指定された単語値で始まる、この場所に正しく収まる入力候補が提案されます。
単語の値が指定されていない場合 (単語に空の値が指定されている場合、例: --word=
)、補完は挿入モードで動作します。 カーソルの位置に新しい値として収まる入力候補が提案されます。
引数に基づいて、提案される補完は次のいずれかになります。
- サブ コマンド :: カーソルがコマンドの直後にあり、使用可能なサブ コマンドがある。
- 引数指定子 :: カーソルの位置が値を受け取る引数指定子の後ではなく、使用可能な引数がある。
- 引数値 :: カーソルが値を受け取る引数指定子の後にあるか、位置指定引数が予測される。
これらのすべてのケースが評価された後、潜在的な入力候補が 1 行に 1 つずつ出力されます。 入力候補文字列にスペースが含まれている場合は、引用符で囲まれます。
関連トピック
Windows developer
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示