PSReadLine 키 처리기 사용
PSReadLine 모듈은 PSReadLine 함수를 키보드 코드에 매핑하는 키 처리기를 제공합니다. 키보드 코드는 동시에 누르는 하나 이상의 키 입력 시퀀스입니다.
예를 들어 코드 Ctrl+스페이스바는 Ctrl 키와 스페이스바 키를 동시에 눌렀습니다. PSReadLine 함수는 명령줄에서 수행할 수 있는 미리 정의된 작업입니다. 예를 들어 이 MenuComplete
함수를 사용하면 명령줄의 입력을 완료하는 메뉴의 옵션 목록에서 선택할 수 있습니다.
PSReadLine 에는 기본적으로 바인딩되는 몇 가지 미리 정의된 키 처리기가 있습니다. 사용자 고유의 사용자 지정 키 처리기를 정의할 수도 있습니다. 다음 명령을 실행하여 현재 정의된 키 처리기를 나열합니다.
Get-PSReadLineKeyHandler
키 코드에 바인딩할 수 있는 모든 언바운드 PSReadLine 함수 목록을 가져올 수도 있습니다.
Get-PSReadLineKeyHandler -Unbound
cmdlet을 Set-PSReadLineKeyHandler
사용하여 키 처리기에 함수를 바인딩할 수 있습니다. 다음 명령은 코드 Ctrl+스페이스바에 함수를 바인딩 MenuComplete
합니다.
Set-PSReadLineKeyHandler -Chord 'Ctrl+Spacebar' -Function MenuComplete
키 이름 및 코드 바인딩 찾기
코드의 키 이름은 열거형으로 [System.ConsoleKey]
정의됩니다. 자세한 내용은 System.ConsoleKey 설명서를 참조하세요. 예를 들어 2 키의 이름은 숫자 키 [System.ConsoleKey]
D2
패드의 2 키 이름입니다NumPad2
. 이 메서드를 [System.Console]::ReadKey()
사용하여 누른 키의 이름을 찾을 수 있습니다.
[System.Console]::ReadKey()
다음 출력은 Ctrl+2 키 코드에 대한 메서드에서 반환 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
Linux 플랫폼에서 생성된 키 코드는 다른 시스템과 다를 수 있습니다. 예시:
Ctrl+[ 는 이스케이프와 동일합니다 .
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 키를 눌러 입력을 완료합니다. 선택 영역을 이동할 때 선택한 명령에 대한 도움말이 메뉴 아래에 표시됩니다.
ClearScreen
이 함수는 또는 clear
명령과 유사한 cls
화면을 지웁니다.
기본 코드: Ctrl+l
SelectCommandArgument
명령줄에서 다음 인수를 선택합니다.
기본 코드: Alt+a
기록에서 다른 매개 변수 값을 사용하여 다시 실행하려는 명령이 있을 수 있습니다. 코드를 사용하여 각 매개 변수를 순환하고 필요에 따라 값을 변경할 수 있습니다.
New-AzVM -ResourceGroupName myRGName -Location eastus -Name myVM
Alt+키를 누르면 다음 매개 변수 인수가 차례로 myRGName
eastus
myVM
선택됩니다.
GotoBrace
커서를 일치하는 중괄호로 이동합니다.
기본 코드: Ctrl+]
이 함수는 명령줄의 현재 커서 위치에 있는 중괄호와 일치하는 닫는 중괄호로 커서를 이동합니다. 이 함수는 대괄호([]
), 중괄호({}
) 및 괄호()에()
대해 작동합니다.
DigitArgument
지정된 횟수만큼 키 입력을 반복하는 데 사용하는 숫자 인수를 시작하거나 누적합니다.
기본 코드: Alt+0
through Alt+9
예를 들어 Alt+4+#를 입력하면 명령줄에 입력됩니다.####
참고 항목
PowerShell