Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья относится к ✔️ SDK для .NET Core 2.1 и более поздних версий.
В этой статье описывается настройка завершения вкладки для пяти оболочк: PowerShell, Bash, zsh, fish и nushell. Сведения о настройке завершения вкладки см. в документации по другим оболочкам.
После настройки завершение вкладки для интерфейса командной строки .NET активируется путем ввода dotnet
команды в оболочке и нажатия клавиши TAB . Текущая командная строка отправляется команде dotnet complete
, а результаты обрабатываются оболочкой. Вы можете протестировать результаты без включения завершения вкладки, отправив что-то непосредственно в dotnet complete
команду. Рассмотрим пример.
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
Если эта команда не работает, убедитесь, что установлен пакет SDK для .NET Core 2.0 или более поздней версии. Если она установлена, но эта команда по-прежнему не работает, убедитесь, что команда dotnet
соответствует версии SDK .NET Core 2.0 или более поздней. Используйте команду dotnet --version
, чтобы узнать, к какой версии dotnet
разрешается ваш текущий путь. Дополнительные сведения см. в разделе "Выбор используемой версии .NET".
Примеры
Ниже приведены некоторые примеры завершения вкладки:
Ввод | превращается в | Потому что |
---|---|---|
dotnet a⇥ |
dotnet add |
add — первая подкоманда в алфавитном порядке. |
dotnet add p⇥ |
dotnet add --help |
Завершение табуляции соответствует подстрокам и --help выполняется в алфавитном порядке. |
dotnet add p⇥⇥ |
dotnet add package |
При нажатии клавиши tab во второй раз выводится следующее предложение. |
dotnet package add Microsoft⇥ |
dotnet package add Microsoft.ApplicationInsights.Web |
Результаты возвращаются в алфавитном порядке. |
dotnet reference remove ⇥ |
dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
Завершение вкладки — это файл проекта, который учитывается. |
PowerShell
Чтобы добавить автозавершение в PowerShell для .NET CLI, создайте или измените профиль, хранящийся в переменной $PROFILE
. Дополнительные сведения см. в разделах How to create your profile (Как создать свой профиль) и Profiles and execution policy (Профили и политика выполнения).
Добавьте следующий код в профиль:
# 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
Чтобы добавить завершение вкладки в оболочку Bash для .NET CLI, добавьте в файл следующий код .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
Чтобы добавить автодополнение для оболочки zsh в .NET CLI, добавьте следующий код в ваш файл .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
рыба
Чтобы добавить автодополнение в оболочку Fish для .NET CLI, добавьте следующий код в файл config.fish
.
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
Чтобы добавить завершение вкладки в nushell для .NET CLI, добавьте следующее в начало config.nu
файла:
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
А затем в записи config
найдите раздел completions
и добавьте ранее заданный external_completer
в external
:
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}