Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł dotyczy: ✔️ zestaw .NET 6 SDK i nowsze wersje
W tym artykule opisano sposób konfigurowania uzupełniania poleceń dla pięciu powłok: PowerShell (pwsh), Bash, zsh, fish i nushell. W przypadku innych powłok, zapoznaj się z dokumentacją dotyczącą konfigurowania dopełniania tabulatorem.
Skrypty uzupełniania powłoki natywnej (.NET 10+)
Począwszy od wersji .NET 10, CLI .NET zawiera natywne skrypty dopełniania powłoki, które działają znacznie szybciej niż dynamiczne dopełniania dostępne we wcześniejszych wersjach. Natywne automatyczne uzupełnienia generują skrypty dostosowane do powłoki, które obsługują statyczne części gramatyki CLI (interfejsu wiersza polecenia) bezpośrednio w powłoce. Zapewnia to znaczną poprawę wydajności.
Generowanie skryptów uzupełniania
Użyj polecenia , dotnet completions script aby wygenerować skrypt ukończenia dla powłoki:
dotnet completions script [SHELL]
Parametr [SHELL] akceptuje jedną z następujących wartości:
bashfishnushellpwshzsh
Jeśli nie określisz powłoki, polecenie wywnioskuje poprawną powłokę ze środowiska. W systemie Windows wartość domyślna to PowerShell (pwsh). W innych systemach sprawdza, czy nazwa SHELL pliku zmiennej środowiskowej jest zgodna z dowolnymi obsługiwanymi wartościami powłoki.
Możliwości uzupełniania
Uzupełnienia natywne zapewniają różne poziomy obsługi w zależności od powłoki:
| Shell | Typ ukończenia | Opisy w uzupełnieniach zakładek |
|---|---|---|
| bash | hybryda | Nie. |
| ryba | dynamic | Nie. |
| nushell | dynamic | Nie. |
| PowerShell | hybryda | Tak |
| zsh | hybryda | Tak |
Typy uzupełniania:
-
Hybrid: generuje kod specyficzny dla shell, który szybko obsługuje statyczne części gramatyki CLI, ale przełącza się z powrotem na
dotnet completepolecenie dla dynamicznej zawartości (np. identyfikatorów pakietów NuGet). -
Dynamiczny: wszystkie uzupełnienia przechodzą przez
dotnet completepolecenie, co może być wolniejsze, ale zapewnia kompleksowe pokrycie.
Konfiguracja powłok w celu wykorzystania uzupełniania natywnego
Dodaj odpowiednie polecenie do profilu powłoki, aby włączyć funkcję natywnego uzupełniania:
PowerShell
Dodaj następujący wiersz do profilu programu PowerShell ($PROFILE):
dotnet completions script pwsh | Out-String | Invoke-Expression
Bash
Dodaj następujący wiersz do .bashrc pliku:
eval "$(dotnet completions script bash)"
Zsh
Dodaj następujący wiersz do .zshrc pliku:
eval "$(dotnet completions script zsh)"
Ryba
Dodaj następujący wiersz do config.fish pliku:
dotnet completions script fish | source
NuShell
Dodaj następujące elementy na początku config.nu pliku:
dotnet completions script nushell | save -f ~/.local/share/nushell/completions/dotnet.nu
use ~/.local/share/nushell/completions/dotnet.nu *
Skrypty uzupełniania dynamicznego (wszystkie wersje)
pl-PL: W przypadku wersji platformy .NET wcześniejszych niż .NET 10 lub jeśli wolisz używać uzupełniania dynamicznego, możesz skonfigurować powłokę tak, aby korzystała z polecenia dotnet complete. Ukończenia dynamiczne działają poprzez wysyłanie bieżącego wiersza polecenia do polecenia dotnet complete i przetwarzanie wyników w powłoce.
Po skonfigurowaniu uzupełnianie poleceń po naciśnięciu Tab w interfejsie wiersza poleceń .NET jest wyzwalane przez wprowadzenie polecenia dotnet w powłoce, a następnie naciśnięcie Tab. Bieżący wiersz polecenia jest wysyłany do polecenia dotnet complete, a wyniki są przetwarzane przez powłokę. Można przetestować wyniki bez włączania uzupełniania poleceń z użyciem klawisza Tab, wysyłając coś bezpośrednio do polecenia dotnet complete. Na przykład:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Jeśli to polecenie nie działa, upewnij się, że jest zainstalowany zestaw .NET Core 2.0 SDK lub nowszy. Jeśli jest on zainstalowany, ale to polecenie nadal nie działa, upewnij się, że polecenie dotnet odnosi się do pakietu .NET Core SDK w wersji 2.0 lub nowszej.
dotnet --version Użyj polecenia , aby zobaczyć, jaka wersja bieżącej dotnet ścieżki jest rozpoznawana. Aby uzyskać więcej informacji, zobacz Wybieranie wersji platformy .NET do użycia.
Przykłady
Oto kilka przykładów tego, co oferuje uzupełnianie za pomocą Tab:
| Dane wejściowe | Staje się | Ponieważ |
|---|---|---|
dotnet a⇥ |
dotnet add |
add jest pierwszym podpoleceniem, alfabetycznie. |
dotnet add p⇥ |
dotnet add --help |
Uzupełnianie przy pomocy tabulatora dopasowuje podciągi, a --help jest pierwsze w porządku alfabetycznym. |
dotnet add p⇥⇥ |
dotnet add package |
Naciśnięcie Tab po raz drugi powoduje wyświetlenie następnej sugestii. |
dotnet package add Microsoft⇥ |
dotnet package add Microsoft.ApplicationInsights.Web |
Wyniki są zwracane alfabetycznie. |
dotnet reference remove ⇥ |
dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Uzupełnianie kart jest uwzględniane w pliku projektu. |
PowerShell
Aby dodać uzupełnianie poleceń do programu PowerShell dla .NET CLI, utwórz lub edytuj profil przechowywany w zmiennej $PROFILE. Aby uzyskać więcej informacji, zobacz Jak utworzyć profil i Profile i Zasady Wykonywania.
Dodaj następujący kod do profilu:
# 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
Aby dodać uzupełnianie poleceń do powłoki bash dla CLI platformy .NET, dodaj następujący kod do pliku .bashrc.
# 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
Aby dodać uzupełnianie poleceń za pomocą klawisza Tab do powłoki zsh dla .NET CLI, dodaj następujący kod do pliku .zshrc.
# 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
ryba
Aby dodać uzupełnianie poleceń do powłoki fish dla interfejsu wiersza polecenia platformy .NET, dodaj następujący kod do pliku config.fish.
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Aby dodać automatyczne uzupełnianie do programu NuShell dla platformy .NET CLI, dodaj poniższy kod na początku pliku:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Następnie w rekordzie config znajdź sekcję completions i dodaj wcześniej zdefiniowaną external_completer do elementu external:
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}