PSReadLine에서 예측 변수 사용
PSReadLine 2.1.0에는 예측 IntelliSense 기능이 도입되었습니다. 예측 IntelliSense는 PSReadLine 기록의 항목을 기반으로 전체 명령에 대한 제안을 제공합니다. PSReadLine 2.2.2는 고급 논리를 사용하여 전체 명령에 대한 제안을 제공하는 플러그 인 모듈 지원을 추가하여 예측 IntelliSense의 기능을 확장합니다. 최신 버전인 PSReadLine 2.2.6은 기본적으로 예측을 사용하도록 설정합니다.
예측 IntelliSense 사용
예측 IntelliSense를 사용하도록 설정하면 예측 제안이 사용자의 커서 뒤에 색이 지정된 텍스트로 표시됩니다. 예측 IntelliSense의 제안은 PowerShell의 신규 및 숙련된 사용자가 일치하는 예측에 따라 전체 명령을 검색, 편집 및 실행하는 데 도움이 됩니다. 제안 사항은 사용자의 기록 및 추가 도메인별 플러그 인에서 나올 수 있습니다.
이전 이미지는 제안의 기본 InlineView
을(를) 보여 줍니다. RightArrow 키를 누르면 인라인 제안을 수락합니다. 제안을 수락한 후 Enter 키를 눌러 명령을 실행하기 전에 명령줄을 편집할 수 있습니다.
PSReadLine은 제안 사항의 ListView
프레젠테이션도 제공합니다.
목록 보기에서 화살표 키를 사용하여 사용 가능한 제안을 스크롤할 수 있습니다. 목록 보기에는 예측의 원본도 표시됩니다.
PSReadLine의 기본값은 InlineView
입니다. InlineView
F2ListView
키를 눌러 및 사이를 전환할 수 있습니다. Set-PSReadLineOption
의 PredictionViewStyle 매개 변수를 사용하여 보기를 변경할 수도 있습니다.
예측 IntelliSense 관리
예측 IntelliSense를 사용하려면 최신 버전의 PSReadLine이 설치되어 있어야 합니다. 최상의 결과를 위해 모듈의 최신 버전을 설치합니다.
PowerShellGet을 사용하여 PSReadLine을 설치하려면 다음을 수행합니다.
Install-Module -Name PSReadLine
또는 새 PowerShellGet v3 모듈을 사용하여 설치합니다.
Install-PSResource -Name PSReadLine
PSReadLine 은 Windows PowerShell 5.1 또는 PowerShell 7 이상에 설치할 수 있습니다. 예측 플러그 인을 사용하려면 PowerShell 7.2 이상에서 실행 중이어야 합니다. Windows PowerShell 5.1은 기록 기반 예측자를 사용할 수 있습니다.
PSReadLine 2.2.6에서 예측 IntelliSense는 다음 조건에 따라 기본적으로 사용하도록 설정됩니다.
- VT(가상 터미널)가 지원되고 PSReadLine이 PowerShell 7.2 이상에서 실행되는 경우 PredictionSource는
HistoryAndPlugin
(으)로 설정됩니다. - VT가 지원되고 PSReadLine이 PowerShell 7.2 이전에서 실행되는 경우 PredictionSource는
History
(으)로 설정됩니다. - VT가 지원되지 않으면 PredictionSource가
None
(으)로 설정됩니다.
다음 명령을 사용하여 현재 설정을 확인합니다.
Get-PSReadLineOption | Select-Object -Property PredictionSource
PredictionSource 매개 변수와 함께 Set-PSReadLineOption
cmdlet을 사용하여 예측 원본을 변경할 수 있습니다. PredictionSource는 다음으로 설정할 수 있습니다.
None
History
Plugin
HistoryAndPlugin
참고 항목
기록 기반 예측은 PSReadLine에서 유지 관리하는 기록에서 가져옵니다. 해당 기록은 Get-History
를 사용하여 볼 수 있는 세션 기반 기록보다 더 포괄적입니다. 자세한 내용은 about_PSReadLine의 명령 기록 섹션을 참조 하세요.
예측 색 설정
기본적으로 예측은 사용자가 입력하는 줄에 연한 회색 텍스트로 표시됩니다. 접근성 요구를 지원하기 위해 예측 색을 사용자 지정할 수 있습니다. 색은 ANSI 이스케이프 시퀀스를 사용하여 정의됩니다. $PSStyle
을(를) 사용하여 ANSI 이스케이프 시퀀스를 작성할 수 있습니다.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
사용자가 직접 만들어 사용할 수도 있습니다. 기본 연한 회색 예측 텍스트 색은 다음 ANSI 이스케이프 시퀀스를 사용하여 복원할 수 있습니다.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
예측 색 및 기타 PSReadLine 설정에 대한 자세한 내용은 Set-PSReadLineOption을 참조하세요.
키 바인딩 변경
PSReadLine에는 예측을 탐색하고 수락하는 함수가 포함되어 있습니다. 예시:
AcceptSuggestion
- 현재 인라인 제안 수락AcceptNextSuggestionWord
- 인라인 제안의 다음 단어 수락AcceptSuggestion
은 기본적으로 RightArrow에 바인딩되는ForwardChar
내에서 빌드됩니다.AcceptNextSuggestionWord
은(는) Ctrl+f에 바인딩할 수 있는 함수ForwardWord
내에 빌드됩니다.
Set-PSReadLineKeyHandler
cmdlet을 사용하여 키 바인딩을 변경할 수 있습니다.
Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord
이 바인딩을 사용하면 커서가 현재 편집 줄의 끝에 있을 때 Ctrl+f 키를 누르면 인라인 제안의 다음 단어가 허용됩니다. 유사한 기능의 경우 AcceptSuggestion
및 AcceptNextSuggestionWord
에 다른 키를 바인딩할 수 있습니다. 예를 들어 RightArrow가 전체 제안 줄 대신 인라인 제안의 다음 단어를 수락하도록 할 수 있습니다.
Set-PSReadLineKeyHandler -Chord "RightArrow" -Function ForwardWord
다른 예측 플러그 인 사용
Az.Tools.Predictor 모듈은 예측 IntelliSense의 첫 번째 플러그 인이었습니다. Machine Learning을 사용하여 실행할 Azure PowerShell 명령과 사용하려는 매개 변수를 예측합니다. 자세한 내용 및 설치 지침은 Az.Tools.Predictor의 일반 공급 발표를 참조하세요.
CompletionPredictor 모듈은 PowerShell에서 탭을 완료할 수 있는 모든 항목에 대해 IntelliSense 환경을 추가합니다. PSReadLine을 InlineView
(으)로 설정하면 일반적인 탭 완성 환경을 사용할 수 있습니다. ListView
(으)로 전환하면 IntelliSense 환경을 사용할 수 있습니다. PowerShell 갤러리에서 CompletionPredictor 모듈을 설치할 수 있습니다.
앞에서 설명한 대로 ListView
에서는 예측의 원본을 보여 줍니다. 여러 플러그 인이 설치된 경우 예측은 먼저 나열된 기록 원본별로 그룹화되고 각 플러그 인이 로드된 순서대로 그룹화됩니다.
고유한 예측 모듈 만들기
C#을 사용하여 고유한 예측자를 작성하면 컴파일된 PowerShell 모듈을 만들 수 있습니다. 모듈은 System.Management.Automation.Subsystem.Prediction.ICommandPredictor 인터페이스를 구현해야 합니다. 이 인터페이스는 예측 결과를 쿼리하고 피드백을 제공하는 데 사용되는 메서드를 선언합니다.
자세한 내용은 명령줄 예측자를 만드는 방법을 참조하세요.
PowerShell