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
키를 눌러 ListView
와 사이를 전환할 수 있습니다.
PredictionViewStyle 매개 변수를 Set-PSReadLineOption
사용하여 보기를 변경할 수도 있습니다.
IntelliSense 예측 관리
예측 IntelliSense를 사용하려면 최신 버전의 PSReadLine 이 설치되어 있어야 합니다. 최상의 결과를 위해 최신 버전의 모듈을 설치합니다.
Microsoft.PowerShell.PSResourceGet 모듈을 사용하여 PSReadLine을 설치합니다.
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
Set-PSReadLineOption
매개 변수와 함께 cmdlet을 사용하여 예측 원본을 변경할 수 있습니다.
PredictionSource는 다음으로 설정할 수 있습니다.
None
History
Plugin
HistoryAndPlugin
비고
기록 기반 예측은 PSReadLine에서 유지 관리하는 기록에서 가져옵니다. 이 기록은 사용 중인 Get-History
세션 기반 기록보다 더 포괄적입니다. 자세한 내용은 about_PSReadLine명령 기록 섹션을 참조하세요.
예측 색 설정
기본적으로 예측은 사용자가 입력하는 것과 동일한 줄에 연한 회색 텍스트로 표시됩니다. 접근성 요구 사항을 지원하기 위해 예측 색을 사용자 지정할 수 있습니다. 색은 ANSI 이스케이프 시퀀스를 사용하여 정의됩니다. ANSI 이스케이프 시퀀스를 작성하는 데 사용할 $PSStyle
수 있습니다.
Set-PSReadLineOption -Colors @{ InlinePrediction = $PSStyle.Background.Blue }
또는 직접 만들 수 있습니다. 다음 ANSI 이스케이프 시퀀스를 사용하여 기본 연한 회색 예측 텍스트 색을 복원할 수 있습니다.
Set-PSReadLineOption -Colors @{ InlinePrediction = "`e[38;5;238m" }
예측 색 및 기타 PSReadLine 설정을 설정하는 방법에 대한 자세한 내용은 Set-PSReadLineOption을 참조하세요.
키 바인딩 변경
PSReadLine에는 예측을 탐색하고 수락하는 함수가 포함되어 있습니다. 다음은 그 예입니다.
-
AcceptSuggestion
- 현재 인라인 제안 수락 -
AcceptNextSuggestionWord
- 인라인 제안의 다음 단어 수락 -
AcceptSuggestion
는ForwardChar
에 기본적으로 바인딩된 내에서 빌드됩니다. -
AcceptNextSuggestionWord
는ForwardWord
+에 바인딩할 수 있는 함수 내에서 빌드됩니다.
cmdlet을 Set-PSReadLineKeyHandler
사용하여 키 바인딩을 변경할 수 있습니다.
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