.NET CLI için sekme tamamlamayı etkinleştirme
Bu makale şunlar için geçerlidir: ✔️ .NET Core 2.1 SDK ve sonraki sürümleri
Bu makalede beş kabuk için sekme tamamlamanın nasıl yapılandırıldığı açıklanır: PowerShell, Bash, zsh, fish ve nushell. Diğer kabuklar için, sekme tamamlamayı yapılandırma hakkındaki belgelerine bakın.
Ayarlandıktan sonra, kabukta bir dotnet
komut girilip Sekme tuşuna basılarak .NET CLI için sekme tamamlama tetikler. Geçerli komut satırı komuta gönderilir dotnet complete
ve sonuçlar kabuk tarafından işlenir. Doğrudan komuta bir şey dotnet complete
göndererek sekme tamamlama özelliğini etkinleştirmeden sonuçları test edebilirsiniz. Örneğin:
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Bu komut işe yaramazsa .NET Core 2.0 SDK veya üstünün yüklü olduğundan emin olun. Yüklüyse ancak bu komut hala çalışmıyorsa, komutun dotnet
.NET Core 2.0 SDK veya sonraki bir sürümüne çözümlendiğinden emin olun. dotnet --version
Geçerli yolunuzun hangi sürümüne dotnet
çözümlediğini görmek için komutunu kullanın. Daha fazla bilgi için bkz . Kullanılacak .NET sürümünü seçme.
Örnekler
Sekme tamamlamanın sağladığı bazı örnekler aşağıda verilmiştir:
Giriş | Olur | Çünkü |
---|---|---|
dotnet a⇥ |
dotnet add |
add alfabetik olarak ilk alt komut. |
dotnet add p⇥ |
dotnet add --help |
Sekme tamamlama alt dizelerle eşleşir ve --help önce alfabetik olarak gelir. |
dotnet add p⇥⇥ |
dotnet add package |
Sekme tuşuna ikinci kez basmak bir sonraki öneriyi getirir. |
dotnet add package Microsoft⇥ |
dotnet add package Microsoft.ApplicationInsights.Web |
Sonuçlar alfabetik olarak döndürülür. |
dotnet remove reference ⇥ |
dotnet remove reference ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Sekme tamamlama, proje dosyasının farkındadır. |
PowerShell
.NET CLI için PowerShell'e sekme tamamlama eklemek için değişkeninde $PROFILE
depolanan profili oluşturun veya düzenleyin. Daha fazla bilgi için bkz . Profilinizi oluşturma ve Profiller ve yürütme ilkesi.
Profilinize aşağıdaki kodu ekleyin:
# 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
.NET CLI için bash kabuğunuza sekme tamamlama eklemek için dosyanıza .bashrc
aşağıdaki kodu ekleyin:
# 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
.NET CLI için zsh kabuğunuza sekme tamamlama eklemek için dosyanıza .zshrc
aşağıdaki kodu ekleyin:
# 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
Balık
.NET CLI için fish shell'inize sekme tamamlama eklemek için dosyanıza config.fish
aşağıdaki kodu ekleyin:
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
.NET CLI için nushell'inize sekme tamamlama eklemek için, dosyanızın config.nu
başına aşağıdakileri ekleyin:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
Ardından kayıtta config
bölümünü bulun completions
ve daha önce tanımlanan öğesini öğesine ekleyin:external_completer
external
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}