PSReadLine 모듈은 PSReadLine 함수를 키보드 코드에 매핑하는 키 처리기를 제공합니다. 키보드 코드는 동시에 누르는 하나 이상의 키 입력 시퀀스입니다.
예를 들어 코드 Ctrl+스페이스바 는 Ctrl 키와 스페이스바 키를 동시에 눌렀습니다.
PSReadLine 함수는 명령줄에서 수행할 수 있는 미리 정의된 작업입니다. 예를 들어 이 MenuComplete 함수를 사용하면 명령줄의 입력을 완료하는 메뉴의 옵션 목록에서 선택할 수 있습니다.
PSReadLine 에는 기본적으로 바인딩되는 몇 가지 미리 정의된 키 처리기가 있습니다. 사용자 고유의 사용자 지정 키 처리기를 정의할 수도 있습니다. 다음 명령을 실행하여 현재 정의된 키 처리기를 나열합니다.
Get-PSReadLineKeyHandler
키 코드에 바인딩할 수 있는 모든 언바운드 PSReadLine 함수 목록을 가져올 수도 있습니다.
Get-PSReadLineKeyHandler -Unbound
cmdlet을 Set-PSReadLineKeyHandler 사용하여 키 처리기에 함수를 바인딩할 수 있습니다. 다음 명령은 코드 MenuComplete+에 함수를 바인딩 합니다.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
키 이름 및 코드 바인딩 찾기
코드의 키 이름은 열거형의 [System.ConsoleKey] 이름과 일치합니다. 자세한 내용은 System.ConsoleKey 설명서를 참조하세요. 예를 들어 2 키의 이름은 [System.ConsoleKey]에서와 같으며, 숫자 키패드의 D2 키의 이름은 입니다. 이 메서드를 [System.Console]::ReadKey() 사용하여 누른 키의 이름을 찾을 수 있습니다.
[System.Console]::ReadKey()
다음 출력은 ReadKey()+ 키 코드에 대한 메서드에서 반환 된 정보를 보여줍니다.
KeyChar Key Modifiers
------- --- ---------
D2 Control
PSReadLine 키 처리기 cmdlet의 경우 이 코드는 .로 Ctrl+D2표시됩니다. 다음 예제에서는 이 코드를 함수에 바인딩합니다.
Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
여러 코드를 단일 함수에 바인딩할 수 있습니다. 기본적으로 BackwardDeleteChar 함수는 두 코드에 바인딩됩니다.
Get-PSReadLineKeyHandler -Chord Backspace, Ctrl+h
Key Function Description
--- -------- -----------
Backspace BackwardDeleteChar Delete the character before the cursor
Ctrl+h BackwardDeleteChar Delete the character before the cursor
비고
코드 매개 변수는 대/소문자를 구분합니다. 즉, Ctrl X 및 Ctrl+x에 대해 다른 바인딩+ 만들 수 있습니다.
Windows에서는 Alt+? 키 코드를 사용하여 입력한 다음 키 코드에 바인딩된 함수를 표시할 수도 있습니다. Alt+를 입력하면 다음 프롬프트가 표시됩니다.
what-is-key:
백스페이스 키를 누르면 다음 응답이 표시됩니다.
Backspace: BackwardDeleteChar - Delete the character before the cursor
비 Windows 컴퓨터의 키 처리기
키보드에서 생성되는 키 코드는 사용 중인 운영 체제 및 터미널 애플리케이션에 따라 다를 수 있습니다.
macOS
Macintosh 키보드에는 Windows 및 Linux 시스템과 같은 Alt 키가 없습니다. 대신 ⌥ 옵션 키가 있습니다. macOS는 이 키를 다른 시스템의 Alt 키와 다르게 사용합니다. 그러나 macOS에서 터미널 및 iTerm2 애플리케이션을 Alt 키로 처리하도록 구성할 수 있습니다.
터미널 애플리케이션 구성
Terminal.app 앱 바에서 설정 창을 엽니다. 프로필을 선택하고 구성하려는 프로필을 선택합니다. 구성 옵션의 키보드 탭을 선택합니다. 아래 키 목록에서 옵션을 메타 키로 설정을 선택합니다. 이 설정을 사용하면 터미널 애플리케이션에서 ⌥ 옵션 키가 Alt 로 작동할 수 있습니다.
iTerm2 애플리케이션 구성
iTerm.app App Bar에서 설정 창을 엽니다. 프로필을 선택하고 구성하려는 프로필을 선택합니다. 구성 옵션의 키 탭을 선택합니다. 왼쪽 옵션 키 및 오른쪽 옵션 키 설정 모두에 대해 Esc+옵션을 선택합니다. 이 설정을 사용하면 ⌥ 옵션 키가 iTerm 애플리케이션에서 Alt 역할을 할 수 있습니다.
비고
정확한 단계는 macOS 버전 및 터미널 애플리케이션에 따라 달라집니다. 이러한 예제는 macOS Ventura 13.2.1 및 iTerm2 v3.4.16에서 캡처되었습니다.
리눅스
Linux 플랫폼에서 생성된 키 코드는 다른 시스템과 다를 수 있습니다. 다음은 그 예입니다.
Ctrl 키+[는 Esc 키와 같습니다.
Ctrl+스페이스바는 Ctrl+D2에 대한 키 코드를 생성합니다. Ctrl+스페이스바에 함수를 매핑하려면 코드를
Ctrl+D2사용해야 합니다.Set-PSReadLineKeyHandler -Chord 'Ctrl+D2' -Function MenuComplete
이 메서드를 ReadKey() 사용하여 키보드에서 생성된 키 코드를 확인합니다.
일반적으로 사용되는 키 처리기
다음은 Windows에서 기본적으로 바인딩되는 몇 가지 일반적으로 사용되는 키 처리기입니다. 비 Windows 플랫폼에서는 키 바인딩이 다를 수 있습니다.
MenuComplete
가능한 완료 값 메뉴에서 선택하여 입력을 완료합니다.
기본 코드: Ctrl+Spacebar
다음 예제에서는 .로 시작하는 select명령에 대해 가능한 완료 메뉴를 보여 줍니다.
PS C:\> select<Ctrl+Spacebar>
select Select-Object Select-PSFPropertyValue Select-Xml
Select-AzContext Select-PSFConfig Select-PSMDBuildProject
Select-AzSubscription Select-PSFObject Select-String
Select-Object
화살표 키를 사용하여 원하는 완성을 선택합니다. Enter 키를 눌러 입력을 완료합니다. 선택 영역을 이동할 때 선택한 명령에 대한 도움말이 메뉴 아래에 표시됩니다.
깨끗한 화면
이 함수는 cls 또는 clear 명령과 유사하게 화면을 지웁니다.
기본 코드: Ctrl+l
선택명령인수
명령줄에서 다음 인수를 선택합니다.
기본 코드: Alt+a
기록에서 다른 매개 변수 값을 사용하여 다시 실행하려는 명령이 있을 수 있습니다. 코드를 사용하여 각 매개 변수를 순환하고 필요에 따라 값을 변경할 수 있습니다.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
Alt+키를 누르면 다음 매개 변수 인수가 차례로 myRGNameeastusmyVM선택됩니다.
GotoBrace
커서를 일치하는 중괄호로 이동합니다.
기본 코드: Ctrl+]
이 함수는 GotoBrace 명령줄의 현재 커서 위치에 있는 중괄호와 일치하는 닫는 중괄호로 커서를 이동합니다. 이 함수는 대괄호([]), 중괄호({}) 및 괄호(())에 대해 작동합니다.
DigitArgument
지정된 횟수만큼 키 입력을 반복하는 데 사용되는 숫자 인수를 시작하거나 누적합니다.
기본 코드: Alt+0 through Alt+9
예를 들어 Alt+4+# 를 입력하면 명령줄에 입력됩니다 #### .
참고하십시오
PowerShell