Så här aktiverar du flikslutsättning för .NET CLI
Den här artikeln gäller för: ✔️ .NET Core 2.1 SDK och senare versioner
Den här artikeln beskriver hur du konfigurerar flikkomplettering för fem skal: PowerShell, Bash, zsh, fisk och nushell. För andra gränssnitt kan du läsa deras dokumentation om hur du konfigurerar tabbavslut.
När du har konfigurerat flikslutningen för .NET CLI utlöses genom att ett dotnet
kommando anges i gränssnittet och sedan trycka på tabbtangenten. Den aktuella kommandoraden dotnet complete
skickas till kommandot och resultatet bearbetas av gränssnittet. Du kan testa resultaten utan att aktivera flikavslut genom att skicka något direkt till dotnet complete
kommandot. Till exempel:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Om kommandot inte fungerar kontrollerar du att .NET Core 2.0 SDK eller senare är installerat. Om det är installerat men kommandot fortfarande inte fungerar kontrollerar du att dotnet
kommandot matchar en version av .NET Core 2.0 SDK eller senare. dotnet --version
Använd kommandot för att se vilken version av dotnet
din aktuella sökväg som matchar. Mer information finns i Välj den .NET-version som ska användas.
Exempel
Här följer några exempel på vad flikavslutningen ger:
Indata | Blir | Eftersom |
---|---|---|
dotnet a⇥ |
dotnet add |
add är den första underkommandot, alfabetiskt. |
dotnet add p⇥ |
dotnet add --help |
Tabbavslut matchar delsträngar och --help kommer först alfabetiskt. |
dotnet add p⇥⇥ |
dotnet add package |
Om du trycker på fliken en andra gång visas nästa förslag. |
dotnet add package Microsoft⇥ |
dotnet add package Microsoft.ApplicationInsights.Web |
Resultaten returneras alfabetiskt. |
dotnet remove reference ⇥ |
dotnet remove reference ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Tabbavslutningen är projektfilmedveten. |
PowerShell
Om du vill lägga till tabbar i PowerShell för .NET CLI skapar eller redigerar du profilen som lagras i variabeln $PROFILE
. Mer information finns i Så här skapar du din profil och profil och körningsprincip.
Lägg till följande kod i din profil:
# PowerShell parameter completion shim for the dotnet CLI
Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
param($wordToComplete, $commandAst, $cursorPosition)
dotnet complete --position $cursorPosition "$commandAst" | ForEach-Object {
[System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_)
}
}
bash
Lägg till följande kod .bashrc
i filen om du vill lägga till tabbavslut i bash-gränssnittet för .NET CLI:
# bash parameter completion for the dotnet CLI
function _dotnet_bash_complete()
{
local cur="${COMP_WORDS[COMP_CWORD]}" IFS=$'\n' # On Windows you may need to use use IFS=$'\r\n'
local candidates
read -d '' -ra candidates < <(dotnet complete --position "${COMP_POINT}" "${COMP_LINE}" 2>/dev/null)
read -d '' -ra COMPREPLY < <(compgen -W "${candidates[*]:-}" -- "$cur")
}
complete -f -F _dotnet_bash_complete dotnet
Zsh
Om du vill lägga till flikslut i zsh-gränssnittet för .NET CLI lägger du till följande kod i .zshrc
filen:
# zsh parameter completion for the dotnet CLI
_dotnet_zsh_complete()
{
local completions=("$(dotnet complete "$words")")
# If the completion list is empty, just continue with filename selection
if [ -z "$completions" ]
then
_arguments '*::arguments: _normal'
return
fi
# This is not a variable assignment, don't remove spaces!
_values = "${(ps:\n:)completions}"
}
compdef _dotnet_zsh_complete dotnet
Fisk
Lägg till följande kod config.fish
i filen om du vill lägga till tabbavslut i fiskskalet för .NET CLI:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Om du vill lägga till tabbavslut i ditt nushell för .NET CLI lägger du till följande i början av config.nu
filen:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
I posten config
letar du upp avsnittet completions
och lägger till external_completer
det som definierades tidigare i external
:
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}