Aktivieren der Vervollständigung mit der TAB-TASTE für die .NET-CLI
Dieser Artikel gilt für: ✔️ .NET Core 2.1 SDK und neuere Versionen
In diesem Artikel wird beschrieben, wie Sie die Vervollständigung mit der TAB-TASTE für fünf Shells konfigurieren: PowerShell, Bash, zsh, fish und nushell. Informationen zu anderen Shells und zum Konfigurieren der Vervollständigung mit der TAB-Taste finden Sie in den jeweiligen Dokumentationen.
Nach dem Einrichten wird die Vervollständigung mit der TAB-TASTE für die .NET-CLI durch Eingeben eines dotnet
-Befehls in die Shell und anschließendes Drücken der TAB-Taste ausgelöst. Die aktuelle Befehlszeile wird an den Befehl dotnet complete
gesendet, und die Ergebnisse werden von der Shell verarbeitet. Sie können die Ergebnisse ohne Aktivierung der Vervollständigung mit der TAB-TASTE testen, indem Sie etwas direkt an den Befehl dotnet complete
senden. Zum Beispiel:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Wenn dieser Befehl nicht funktioniert, stellen Sie sicher, dass das .NET Core 2.0 SDK oder höher installiert ist. Wenn es installiert ist, aber dieser Befehl trotzdem nicht funktioniert, vergewissern Sie sich, dass der Befehl dotnet
mindestens in Version 2.0 des .NET Core SDK aufgelöst wird. Verwenden Sie den Befehl dotnet --version
, um festzustellen, in welche Version von dotnet
der aktuelle Pfad aufgelöst wird. Weitere Informationen finden Sie unter Auswählen der zu verwendenden .NET-Version.
Beispiele
Nachfolgend sind einige Beispiele dafür aufgelistet, was durch die Vervollständigung mit der TAB-TASTE bereitgestellt wird:
Eingabe | Vervollständigung | Grund |
---|---|---|
dotnet a⇥ |
dotnet add |
add ist der erste Unterbefehl in alphabetischer Reihenfolge. |
dotnet add p⇥ |
dotnet add --help |
Bei der Vervollständigung mit der TAB-TASTE werden Teilzeichenfolgen verglichen, und --help ist die erste Übereinstimmung in alphabetischer Reihenfolge. |
dotnet add p⇥⇥ |
dotnet add package |
Bei erneutem Drücken der TAB-TASTE wird der nächste Vorschlag angezeigt. |
dotnet add package Microsoft⇥ |
dotnet add package Microsoft.ApplicationInsights.Web |
Ergebnisse werden in alphabetischer Reihenfolge zurückgegeben. |
dotnet remove reference ⇥ |
dotnet remove reference ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Bei der Vervollständigung mit der TAB-TASTE wird die Projektdatei beachtet. |
PowerShell
Wenn Sie die Vervollständigung mit der TAB-TASTE für die .NET-CLI zu PowerShell hinzufügen möchten, erstellen oder bearbeiten Sie das in der Variablen $PROFILE
gespeicherte Profil. Weitere Informationen finden Sie unter Erstellen Ihres Profils und Profile und Ausführungsrichtlinie.
Fügen Sie Ihrem Profil den folgenden Code hinzu:
# 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
Wenn Sie die Vervollständigung mit der TAB-TASTE für die .NET-CLI zur Bash-Shell hinzufügen möchten, fügen Sie der Datei .bashrc
den folgenden Code hinzu:
# 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
Wenn Sie die Vervollständigung mit der TAB-TASTE für die .NET-CLI zur zsh-Shell hinzufügen möchten, fügen Sie der Datei .zshrc
den folgenden Code hinzu:
# 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
fish
Wenn Sie die Vervollständigung mit der TAB-TASTE für die .NET-CLI der fish-Shell hinzufügen möchten, fügen Sie der Datei config.fish
den folgenden Code hinzu:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Um die Vervollständigung mit der TAB-TASTE zu Ihrer nushell für .NET CLI hinzuzufügen, fügen Sie Folgendes am Anfang Ihrer config.nu
-Datei hinzu:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Suchen Sie dann im config
-Datensatz den Abschnitt completions
, und fügen Sie den zuvor definierten external_completer
in external
hinzu:
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}