다음을 통해 공유


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작동할 수 있습니다.

Terminal.app 설정의 스크린샷.

iTerm2 애플리케이션 구성

iTerm.app App Bar에서 설정 창을 엽니다. 프로필을 선택하고 구성하려는 프로필을 선택합니다. 구성 옵션의 탭을 선택합니다. 왼쪽 옵션 키 및 오른쪽 옵션 키 설정 모두에 대해 Esc+ 옵션을 선택합니다. 이 설정을 사용하면 ⌥ 옵션 키가 iTerm 애플리케이션에서 Alt 역할을 할 수 있습니다.

iTerm.app 설정의 스크린샷.

참고 항목

정확한 단계는 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가 아닌 플랫폼에서 다를 수 있습니다.

가능한 완료 값 메뉴에서 선택하여 입력을 완료합니다.

기본 코드: 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+키를 누르면 다음 매개 변수 인수가 차례로 myRGNameeastusmyVM선택됩니다.

GotoBrace

커서를 일치하는 중괄호로 이동합니다.

기본 코드: Ctrl+]

이 함수는 명령줄의 현재 커서 위치에 있는 중괄호와 일치하는 닫는 중괄호로 커서를 이동합니다. 이 함수는 대괄호([]), 중괄호({}) 및 괄호()에() 대해 작동합니다.

DigitArgument

지정된 횟수만큼 키 입력을 반복하는 데 사용하는 숫자 인수를 시작하거나 누적합니다.

기본 코드: Alt+0 through Alt+9

예를 들어 Alt+4+#를 입력하면 명령줄에 입력됩니다.####

참고 항목