Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel is van toepassing op: ✔️ .NET Core 2.1 SDK en latere versies
In dit artikel wordt beschreven hoe u tabvoltooiing configureert voor vijf shells: PowerShell, Bash, zsh, fish en nushell. Raadpleeg voor andere shells hun documentatie over het configureren van tabvoltooiing.
Nadat de instelling is voltooid, wordt tab-aanvulling voor de .NET CLI geactiveerd door een dotnet
opdracht in de shell in te voeren en vervolgens op de Tab-toets te drukken. De huidige opdrachtregel wordt naar de dotnet complete
opdracht verzonden en de resultaten worden verwerkt door de shell. U kunt de resultaten testen zonder tabvoltooiing in te schakelen door iets rechtstreeks naar de dotnet complete
opdracht te verzenden. Voorbeeld:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Als deze opdracht niet werkt, controleert u of .NET Core 2.0 SDK of hoger is geïnstalleerd. Als deze is geïnstalleerd, maar deze opdracht nog steeds niet werkt, controleert u of de dotnet
opdracht wordt omgezet in een versie van .NET Core 2.0 SDK of hoger. Gebruik de dotnet --version
opdracht om te zien naar welke versie van dotnet
uw huidige pad wordt omgezet. Zie De .NET-versie selecteren die u wilt gebruiken voor meer informatie.
Voorbeelden
Hier volgen enkele voorbeelden van de voltooiing van tabbladen:
Invoer | Wordt | Omdat |
---|---|---|
dotnet a⇥ |
dotnet add |
add is de eerste subopdracht, alfabetisch. |
dotnet add p⇥ |
dotnet add --help |
Tab-completie matcht met subtekens en --help komt eerst alfabetisch. |
dotnet add p⇥⇥ |
dotnet add package |
Als u nogmaals op tab drukt, wordt de volgende suggestie weergegeven. |
dotnet package add Microsoft⇥ |
dotnet package add Microsoft.ApplicationInsights.Web |
Resultaten worden alfabetisch geretourneerd. |
dotnet reference remove ⇥ |
dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Tabvoltooiing herkent projectbestanden. |
PowerShell
Als u tabvoltooiing wilt toevoegen aan PowerShell voor de .NET CLI, maakt of bewerkt u het profiel dat is opgeslagen in de variabele $PROFILE
. Voor meer informatie, zie Hoe u uw profiel maakt en Profielen en uitvoeringsbeleid.
Voeg de volgende code toe aan uw profiel:
# 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
Als u tabvoltooiing wilt toevoegen aan uw bash-shell voor de .NET CLI, voegt u de volgende code toe aan uw .bashrc
bestand:
# 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
Als u tabvoltooiing wilt toevoegen aan uw zsh-shell voor de .NET CLI, voegt u de volgende code toe aan uw .zshrc
bestand:
# 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
vis
Als u tabvoltooiing wilt toevoegen aan uw fish shell voor de .NET CLI, voegt u de volgende code toe aan uw config.fish
bestand:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Als u tabvoltooiing wilt toevoegen aan uw nushell voor .NET CLI, voegt u het volgende toe aan het begin van het config.nu
bestand:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Zoek vervolgens in de config
record de completions
sectie en voeg de external_completer
eerder gedefinieerde sectie toe aan external
:
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}