Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a következő verziókra vonatkozik: ✔️ .NET 6 SDK és újabb verziók
Ez a cikk ismerteti, hogyan konfigurálható a tabulátor kiegészítés öt shellhez: PowerShell (pwsh), Bash, zsh, fish és nushell. Más shell-ek esetén olvassa el a dokumentációt a tab kiegészítés konfigurálásának módjáról.
Natív parancshéj-befejezési szkriptek (.NET 10+)
A .NET 10-től kezdve a .NET CLI natív felületkiegészítési szkripteket tartalmaz, amelyek sokkal gyorsabban futnak, mint a korábbi verziókban elérhető dinamikus kiegészítések. A natív befejezések olyan rendszerhéjspecifikus szkripteket hoznak létre, amelyek közvetlenül a rendszerhéjban kezelik a CLI-nyelvhelyesség statikus részeit, ami jelentős teljesítménybeli javulást eredményez.
Befejezési szkriptek létrehozása
dotnet completions script parancs használatával hozzon létre egy kiegészítő szkriptet a parancsértelmezőhöz.
dotnet completions script [SHELL]
A [SHELL] paraméter a következő értékek egyikét fogadja el:
bashfishnushellpwshzsh
Ha nem ad meg parancsértelmezőt, a parancs megállapítja a megfelelő parancsértelmezőt a környezetből. Windows rendszeren alapértelmezés szerint a PowerShell (pwsh). Más rendszereken ellenőrzi, hogy a SHELL környezeti változó fájlneve megegyezik-e a támogatott rendszerhéjértékek bármelyikével.
Befejezési képességek
A natív kiegészítések különböző támogatási szinteket biztosítanak a rendszerhéjtól függően:
| Shell | Befejezés típusa | Leírások a lapkiegészítésekben |
|---|---|---|
| bash | hibrid | Nem |
| hal | dynamic | Nem |
| nushell | dynamic | Nem |
| PowerShell | hibrid | Igen |
| zsh | hibrid | Igen |
Befejezési típusok:
-
Hibrid: Olyan rendszerhéj-specifikus kódot hoz létre, amely gyorsan kezeli a CLI nyelvtan statikus részeit, de a dinamikus tartalomhoz (például NuGet-csomagazonosítókhoz) visszatér a
dotnet completeparancsra. -
Dinamikus: Minden befejezés végighalad a
dotnet completeparancson, ami lassabb lehet, de átfogó lefedettséget biztosít.
Shellok konfigurálása natív kiegészítések használatára
Adja hozzá a shell profiljához a megfelelő parancsot a natív kiegészítések engedélyezéséhez:
PowerShell
Adja hozzá a következő sort a PowerShell-profilhoz ($PROFILE):
dotnet completions script pwsh | Out-String | Invoke-Expression
Bash
Adja hozzá a következő sort a .bashrc fájlhoz:
eval "$(dotnet completions script bash)"
Zsh
Adja hozzá a következő sort a .zshrc fájlhoz:
eval "$(dotnet completions script zsh)"
Hal
Adja hozzá a következő sort a config.fish fájlhoz:
dotnet completions script fish | source
Nushell
Adja hozzá a következőket a config.nu fájl elejéhez:
dotnet completions script nushell | save -f ~/.local/share/nushell/completions/dotnet.nu
use ~/.local/share/nushell/completions/dotnet.nu *
Dinamikus befejezési szkriptek (minden verzió)
A .NET 10 előtti .NET-verziók esetében, vagy ha inkább dinamikus kiegészítéseket szeretne használni, konfigurálhatja a rendszerhéjat a dotnet complete parancs használatára. A dinamikus befejezések úgy működnek, hogy elküldik az aktuális parancssort a dotnet complete parancsnak, majd a kapott eredményeket a parancshéjban dolgozzák fel.
Miután a beállítást elvégeztük, a .NET CLI tabulátorkiegészítése a parancssorban egy dotnet parancs beírásával, majd a Tab billentyű lenyomásával aktiválható. A rendszer elküldi az aktuális parancssort a dotnet complete parancsnak, és az eredményeket a rendszerhéj dolgozza fel. A tabulátor befejezésének engedélyezése nélkül is tesztelheti az eredményeket, ha közvetlenül a dotnet complete parancsnak küld valamit. Például:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Ha ez a parancs nem működik, győződjön meg arról, hogy a .NET Core 2.0 SDK vagy újabb verzió telepítve van. Ha telepítve van, de a parancs továbbra sem működik, győződjön meg arról, hogy a parancs a dotnet .NET Core 2.0 SDK vagy újabb verziójára lesz feloldva. A dotnet --version parancs használatával megnézheti, hogy az aktuális elérési út milyen verzióra van feloldva dotnet. További információ: Válassza ki a használni kívánt .NET-verziót.
Példák
Íme néhány példa arra, mit nyújt a tabulátorkiegészítés:
| Bemenet | Lesz | Mert |
|---|---|---|
dotnet a⇥ |
dotnet add |
add betűrendben az első alparancs. |
dotnet add p⇥ |
dotnet add --help |
A tabulátorkiegészítés alsztringeket egyeztet, és --help betűrendben kerül ki elsőként. |
dotnet add p⇥⇥ |
dotnet add package |
A tabulátor második lenyomásával megjelenik a következő javaslat. |
dotnet package add Microsoft⇥ |
dotnet package add Microsoft.ApplicationInsights.Web |
Az eredmények betűrendben jelennek meg. |
dotnet reference remove ⇥ |
dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
A tabulátor kitöltése a projektfájlt ismeri. |
PowerShell
A .NET CLI-hez készült PowerShell lapkiegészítés hozzáadásához hozza létre vagy szerkessze a változóban $PROFILEtárolt profilt. További információért lásd: A profil létrehozása és Profilok és végrehajtási szabályzat.
Adja hozzá a következő kódot a profiljához:
# 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
Ha a .NET CLI-hez tartozó bash-felülethez tabulátorkitöltést szeretne hozzáadni, adja hozzá a következő kódot a .bashrc fájlhoz:
# 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
Ha szeretne tabulátorkitöltést hozzáadni a zsh shelljéhez a .NET CLI-hez, illessze be a következő kódot a .zshrc fájlba:
# 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
hal
Ha a .NET CLI-hez tartozó halhéjhoz tabulátorkitöltést szeretne hozzáadni, adja hozzá a következő kódot a config.fish fájlhoz:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Ha a .NET CLI-hez tartozó nushellhez tabulátorkitöltést szeretne hozzáadni, adja hozzá a következőt a config.nu fájl elejéhez:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Ezután keresse meg a config szakaszt a completions rekordban, és adja hozzá a korábban definiált external_completer-t a external-hoz.
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}