이 문서는 .NET Core 2.1 SDK 이상 버전에 적용됩니다 ✔️.
이 문서에서는 PowerShell, Bash, zsh, fish 및 nushell의 5개 셸에 대한 탭 완성을 구성하는 방법을 설명합니다. 다른 셸의 경우 탭 완성을 구성하는 방법에 대한 설명서를 참조하세요.
설정이 완료되면, 셸에서 dotnet
명령을 입력하고 Tab 키를 누르면 .NET CLI의 탭 완성 기능이 작동됩니다. 현재 명령줄이 dotnet complete
명령으로 전송되고 결과는 셸에서 처리됩니다. 명령어로 직접 항목을 보내면 탭 완성을 활성화하지 않고도 결과를 테스트할 수 있습니다. 다음은 그 예입니다.
> dotnet complete "dotnet a"
add
clean
--diagnostics
migrate
pack
해당 명령이 작동하지 않는 경우 .NET Core 2.0 SDK 이상이 설치되어 있는지 확인합니다. 설치되어 있지만 해당 명령이 여전히 작동하지 않는 경우 명령이 dotnet
.NET Core 2.0 SDK 이상으로 확인되는지 확인합니다.
dotnet --version
명령을 사용하여 현재 경로가 dotnet
의 어떤 버전을 가리키는지 확인합니다. 자세한 내용은 사용할 .NET 버전 선택을 참조하세요.
예시
다음은 탭 완성에서 제공하는 몇 가지 예입니다.
입력 | 된다 | 왜냐하면 |
---|---|---|
dotnet a⇥ |
dotnet add |
add 는 사전순으로 첫 번째 하위 명령입니다. |
dotnet add p⇥ |
dotnet add --help |
탭 완성은 부분 문자열을 일치시키고 --help 가 사전순으로 먼저 나타납니다. |
dotnet add p⇥⇥ |
dotnet add package |
탭을 두 번 누르면 다음 제안이 표시됩니다. |
dotnet package add Microsoft⇥ |
dotnet package add Microsoft.ApplicationInsights.Web |
결과는 사전순으로 반환됩니다. |
dotnet reference remove ⇥ |
dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj |
탭 완성은 프로젝트 파일을 인식하여 작동합니다. |
PowerShell
.NET CLI용 PowerShell 에 탭 완성을 추가하려면 변수 $PROFILE
에 저장된 프로필을 만들거나 편집합니다. 자세한 내용은 프로필을 만드는 방법 및 프로필 및 실행 정책을 참조하세요.
프로필에 다음 코드를 추가합니다.
# 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에 대한 bash 셸에 탭 완성을 추가하려면 파일에 다음 코드를 추가합니다 .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
.NET CLI의 zsh 셸에 탭 완성을 추가하려면 파일에 다음 코드를 추가합니다 .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
물고기
.NET CLI의 fish 셸에 탭 완성을 추가하려면 config.fish
파일에 다음 코드를 추가하십시오.
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
nushell
.NET CLI용 nushell 에 탭 완성을 추가하려면 파일의 시작 부분에 다음을 추가합니다 config.nu
.
let external_completer = { |spans|
{
dotnet: { ||
dotnet complete (
$spans | skip 1 | str join " "
) | lines
}
} | get $spans.0 | each { || do $in }
}
그런 다음, 레코드에서 completions
섹션을 찾아 앞에서 정의한 external_completer
를 external
에 추가합니다.
let-env config = {
# your options here
completions: {
# your options here
external: {
# your options here
completer: $external_completer # add it here
}
}
}
.NET