次の方法で共有


タブ補完 (winget ツール)

winget コマンド ライン ツールには、状況依存のタブ補完を提供する complete コマンドが用意されています。 現在のコマンドラインの状態に応じて、コマンド名、引数名、引数値の入力補完がサポートされています。

タブ補完を有効にする

winget でタブ補完を有効にするには、PowerShell で次のスクリプトを $PROFILE に追加する必要があります。

  1. PowerShell を開き、次のコマンドを入力して、メモ帳で $PROFILE を開きます。 notepad.exe $PROFILE

  2. 次のスクリプトをコピーして、メモ帳で開いた $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', $_)
            }
    }
    
  3. スクリプトを使用して $PROFILE を保存します。 次に、PowerShell を閉じてから再度開きます。 PowerShell を再度開くと、winget タブの完了が有効になります。

タブ補完の例

タブ () を繰り返し押すと、使用可能な値が循環します。

インプット 結果 理由
winget ⇥ winget install install はルートの下の最初のコマンドです
winget sh⇥ winget show showsh で始まる最初のコマンドです。
winget source l⇥ winget source list listl で始まるソースの最初のサブコマンドです。
winget -⇥ winget --version --version は、ルートに対して定義された最初の引数です
winget install power⇥ winget install "Power Toys" "Power Toys" は、ID、名前、またはニックネームが power から始まる最初のパッケージです。
winget install "Power Toys" --version ⇥ winget install "Power Toys" --version 0.19.2 0.19.2 は、執筆時点で最も高いバージョンの Power Toys です

コマンド リファレンス

完全なコマンドは、3 つの必須引数を受け取ります。

引数 説明
--word 完了中の現在の単語。カーソルが配置されているトークン。 カーソルに現在の値がないことを示すには空にすることができますが、指定されている場合は、コマンド ラインで部分文字列として表示する必要があります。
--commandline wingetを含む、現在のコマンド ライン全体。 上記の例を参照してください。タブ文字 () 以外のすべてをこの引数に指定する必要があります。
--position コマンド ライン内のカーソルの現在位置。 末尾に示すコマンド ライン文字列の長さを超えることができます。

単語値が入力されると、オートコンプリートは置換モードで動作します。 指定された単語値で始まり、この場所に正しく収まる入力候補が提案されます。

単語の値が指定されていない場合 (たとえば、単語に--word=のような空の値が指定されている場合)、入力候補は挿入モードで動作します。 カーソルの位置に新しい値として収まる入力候補が提案されます。

引数に基づいて、提案される入力完了候補は次のいずれかになります。

  1. sub コマンド :: カーソルはコマンドの直後にあり、使用可能なサブコマンドがあります。
  2. 引数指定子 :: カーソルは、値を受け取る引数指定子の後に配置されず、使用できる引数があります。
  3. 引数値 :: カーソルは、値を受け取る引数指定子の後に配置されるか、位置指定引数が必要です。

これらのすべてのケースを評価した後、潜在的な補完が出力され、各行に 1 つずつ出力されます。 入力候補文字列にスペースが含まれている場合は、引用符で囲まれます。