다음을 통해 공유


about_PSReadLine_Functions

간단한 설명

PSReadLine은 PowerShell 콘솔에서 향상된 명령줄 편집 환경을 제공합니다.

긴 설명

PowerShell 7.3은 PSReadLine 2.2.6과 함께 제공합니다. 현재 버전은 PSReadLine 2.3.4입니다. 현재 버전의 PSReadLine은 Windows PowerShell 5.1 이상에서 설치 및 사용할 수 있습니다. 일부 기능의 경우 PowerShell 7.2 이상을 실행해야 합니다.

이 문서에서는 PSReadLine 2.3.4에서 제공하는 함수를 설명합니다. 이러한 함수는 쉽게 액세스하고 호출할 수 있도록 키 입력에 바인딩할 수 있습니다.

Microsoft.PowerShell.PSConsoleReadLine 클래스 사용

다음 함수는 Microsoft.PowerShell.PSConsoleReadLine 클래스에서 사용할 수 있습니다.

기본 편집 함수

중단

현재 작업(예: 증분 기록 검색)을 중단합니다.

  • Emacs 모드: Ctrl+g
  • Vi 삽입 모드: Ctrl+g
  • Vi 명령 모드: <Ctrl+g>

AcceptAndGetNext

현재 입력을 실행하려고 시도합니다. AcceptLine과 같이 실행할 수 있는 경우 다음에 ReadLine이 호출될 때 기록에서 다음 항목을 회수합니다.

  • Emacs 모드: Ctrl+o

AcceptLine

현재 입력을 실행하려고 시도합니다. 현재 입력이 불완전한 경우(예: 닫는 괄호, 대괄호 또는 따옴표가 누락됨) 연속 프롬프트가 다음 줄에 표시되고 PSReadLine은 키가 현재 입력을 편집할 때까지 기다립니다.

  • Windows 모드: Enter
  • Emacs 모드: Enter
  • Vi 삽입 모드: Enter

AddLine

연속 프롬프트가 다음 줄에 표시되고 PSReadLine은 키가 현재 입력을 편집할 때까지 기다립니다. 단일 줄 자체에서 입력이 완료된 경우에도 여러 줄 입력을 단일 명령으로 입력하는 데 유용합니다.

  • Windows 모드: Shift+Enter
  • Emacs 모드: Shift+Enter
  • Vi 삽입 모드: Shift+Enter
  • Vi 명령 모드: <Shift+Enter>

BackwardDeleteChar

커서 앞에 있는 문자를 삭제합니다.

  • Windows 모드: BackspaceCtrl+h
  • Emacs 모드: Backspace, , Ctrl+BackspaceCtrl+h
  • Vi 삽입 모드: Backspace
  • Vi 명령 모드: <X>, <d,h>

BackwardDeleteInput

BackwardKillInput과 마찬가지로 입력 시작 지점부터 시작 지점까지 텍스트를 삭제하지만 삭제된 텍스트는 kill 링에 넣지 않습니다.

  • Windows 모드: Ctrl+Home
  • Vi 삽입 모드: Ctrl+u, Ctrl+Home
  • Vi 명령 모드: <Ctrl+u>, <Ctrl+Home>

BackwardDeleteLine

BackwardKillLine과 마찬가지로 줄의 시작 지점까지 텍스트를 삭제하지만 삭제된 텍스트는 kill 링에 넣지 않습니다.

  • Vi 명령 모드: <d,0>

BackwardDeleteWord

이전 단어를 삭제합니다.

  • Vi 명령 모드: <Ctrl+w>, <d,b>

BackwardKillInput

입력 시작부터 커서까지 텍스트를 지웁니다. 지워진 텍스트는 kill-ring에 배치됩니다.

  • Emacs 모드: Ctrl+u, Ctrl+x,Backspace

BackwardKillLine

현재 논리 줄의 시작 부분부터 커서까지 텍스트를 지웁니다. 지워진 텍스트는 kill-ring에 배치됩니다.

  • 함수는 바인딩되지 않습니다.

BackwardKillWord

현재 단어의 시작에서 커서로 입력을 지웁니다. 커서가 단어 사이에 있으면 이전 단어의 시작에서 커서로 입력이 지워집니다. 지워진 텍스트는 kill-ring에 배치됩니다.

  • Windows 모드: Ctrl+BackspaceCtrl+w
  • Emacs 모드: Alt+Backspace, Escape,Backspace
  • Vi 삽입 모드: Ctrl+Backspace
  • Vi 명령 모드: <Ctrl+Backspace>

BackwardReplaceChar

커서 앞에 있는 문자를 바꿉니다.

  • Vi 명령 모드: <c,h>

CancelLine

현재 입력을 취소하고 입력을 화면에 그대로 두지만 프롬프트가 다시 평가되도록 호스트로 돌아갑니다.

  • Vi 삽입 모드: Ctrl+c
  • Vi 명령 모드: <Ctrl+c>

CapitalizeWord

PSReadLine 2.3.0에 추가됨

다음 단어의 첫 번째 문자를 대문자로 변환하고 다시 기본 문자를 소문자로 변환합니다.

  • Emacs 모드: Alt+c, Escape,c

복사

선택한 영역을 시스템 클립보드에 복사합니다. 선택한 영역이 없으면 전체 줄을 복사합니다.

  • Windows 모드: Ctrl+C

CopyOrCancelLine

텍스트를 선택한 경우 클립보드에 복사하고, 그렇지 않으면 줄을 취소합니다.

  • Windows 모드: Ctrl+c
  • Emacs 모드: Ctrl+c

잘라내기

시스템 클립보드에 삭제된 텍스트를 배치하는 선택한 영역을 삭제합니다.

  • Windows 모드: Ctrl+x

DeleteChar

커서 아래의 문자를 삭제합니다.

  • Windows 모드: Delete
  • Emacs 모드: Delete
  • Vi 삽입 모드: Delete
  • Vi 명령 모드: <Delete>, <x>, <d,l><d,Spacebar>

DeleteCharOrExit

커서 아래의 문자를 삭제하거나 줄이 비어 있으면 프로세스를 종료합니다.

  • Emacs 모드: Ctrl+d

DeleteEndOfBuffer

여러 줄 버퍼의 끝부분에 삭제합니다.

  • Vi 명령 모드: <d,G>

DeleteEndOfWord

단어의 끝까지 삭제합니다.

  • Vi 명령 모드: <d,e>

DeleteLine

다중 줄 버퍼의 현재 논리 줄을 삭제하여 실행 취소를 사용하도록 설정합니다.

  • Vi 명령 모드: <d,d>, <d,_>

DeleteLineToFirstChar

다중 줄 버퍼에서 현재 논리 줄의 비어 있는 첫 번째 문자에서 삭제합니다.

  • Vi 명령 모드: <d,^>

DeleteNextLines

다중 줄 버퍼에서 현재 및 다음 n 개의 논리 줄을 삭제합니다.

  • Vi 명령 모드: <d,j>

DeletePreviousLines

여러 줄 버퍼에서 이전에 요청한 논리 줄과 현재 논리 줄을 삭제합니다.

  • Vi 명령 모드: <d,k>

DeleteRelativeLines

버퍼의 시작 부분에서 다중 줄 버퍼의 현재 논리 줄로 삭제합니다.

대부분의 Vi 명령으로, <d,g,g> 명령은 현재 줄 번호와 함께 삭제할 줄의 범위를 구성하는 절대 줄 번호를 지정하는 숫자 인수 앞에 추가될 수 있습니다. 지정하지 않으면 숫자 인수는 기본적으로 1로 설정되며, 이는 여러 줄 버퍼의 첫 번째 논리 줄을 참조합니다.

여러 줄에서 삭제할 실제 줄 수는 현재 논리 줄 번호와 지정된 숫자 인수 간의 차이로 계산되므로 음수가 될 수 있습니다. 따라서 메서드 이름의 상대 부분입니다.

  • Vi 명령 모드: <d,g,g>

DeleteToEnd

줄의 끝까지 삭제합니다.

  • Vi 명령 모드: <D>, <d,$>

단어 삭제

다음 단어를 삭제합니다.

  • Vi 명령 모드: <d,w>

DowncaseWord

PSReadLine 2.3.0에 추가됨

다음 단어를 소문자로 변환합니다.

  • Emacs 모드: Alt+l, Escape,l

ForwardDeleteInput

KillLine과 마찬가지로 입력 지점부터 끝까지 텍스트를 삭제하지만 삭제된 텍스트는 kill-ring에 넣지 않습니다.

  • Windows 모드: Ctrl+End
  • Vi 삽입 모드: Ctrl+End
  • Vi 명령 모드: <Ctrl+End>

ForwardDeleteLine

현재 논리 줄의 점부터 끝까지 텍스트를 삭제하지만 삭제된 텍스트는 kill-ring에 넣지 않습니다.

  • 함수가 바인딩되지 않음

InsertLineAbove

커서가 현재 줄에 있는 위치에 관계없이 현재 줄 위에 빈 줄이 새로 만들어집니다. 커서가 새 줄의 시작 부분으로 이동합니다.

  • Windows 모드: Ctrl+Enter

InsertLineBelow

커서가 현재 줄에 있는 위치에 관계없이 현재 줄 아래에 빈 줄이 새로 만들어집니다. 커서가 새 줄의 시작 부분으로 이동합니다.

  • Windows 모드: Shift+Ctrl+Enter

InvertCase

현재 문자의 대/소문자를 반전하고 다음 문자로 이동합니다.

  • Vi 명령 모드: <~>

KillLine

커서에서 입력 끝으로 입력을 지웁니다. 지워진 텍스트는 kill-ring에 배치됩니다.

  • Emacs 모드: Ctrl+k

KillRegion

커서와 표시 사이의 텍스트를 종료합니다.

  • 함수는 바인딩되지 않습니다.

KillWord

커서에서 현재 단어의 끝으로 입력을 지웁니다. 커서가 단어 사이에 있으면 커서에서 다음 단어의 끝으로 입력이 지워집니다. 지워진 텍스트는 kill-ring에 배치됩니다.

  • Windows 모드: Alt+dCtrl+Delete
  • Emacs 모드: Alt+d, Escape,d
  • Vi 삽입 모드: Ctrl+Delete
  • Vi 명령 모드: <Ctrl+Delete>

붙여넣기

시스템 클립보드에서 텍스트를 붙여넣습니다.

  • Windows 모드: Ctrl+vShift+Insert
  • Vi 삽입 모드: Ctrl+v
  • Vi 명령 모드: <Ctrl+v>

Important

붙여넣기 함수를 사용하는 경우 클립보드 버퍼의 전체 내용이 PSReadLine의 입력 버퍼에 붙여넣습니다. 그런 다음 입력 버퍼가 PowerShell 파서에 전달됩니다. 콘솔 애플리케이션의 마우스 오른쪽 단추 클릭 붙여넣기 메서드를 사용하여 붙여넣은 입력은 입력 버퍼에 한 번에 한 문자씩 복사됩니다. 입력 버퍼는 줄 바꿈 문자가 복사될 때 파서에 전달됩니다. 따라서 입력은 한 번에 한 줄씩 구문 분석됩니다. 붙여넣기 메서드 간의 차이로 인해 실행 동작이 달라집니다.

PasteAfter

커서 뒤에 클립보드를 붙여넣고 커서를 붙여넣은 텍스트의 끝으로 이동합니다.

  • Vi 명령 모드: <p>

PasteBefore

커서 앞에 클립보드를 붙여넣고 커서를 붙여넣은 텍스트의 끝으로 이동합니다.

  • Vi 명령 모드: <P>

PrependAndAccept

'#' 앞에 줄을 적용합니다.

  • Vi 명령 모드: <#>

다시 실행

실행 취소를 실행 취소합니다.

  • Windows 모드: Ctrl+y
  • Vi 삽입 모드: Ctrl+y
  • Vi 명령 모드: <Ctrl+y>

RepeatLastCommand

마지막 텍스트 수정을 반복합니다.

  • Vi 명령 모드: <.>

ReplaceChar

현재 문자를 입력된 다음 문자 집합으로 바꿉다.

  • Vi 명령 모드: <c,l>, <c,Spacebar>

ReplaceCharInPlace

현재 문자를 한 문자로만 바꿉다.

  • Vi 명령 모드: <r>

RevertLine

모든 입력을 현재 입력으로 되돌려 줍니다.

  • Windows 모드: Escape
  • Emacs 모드: Alt+r, Escape,r

ShellBackwardKillWord

현재 단어의 시작에서 커서로 입력을 지웁니다. 커서가 단어 사이에 있으면 이전 단어의 시작에서 커서로 입력이 지워집니다. 지워진 텍스트는 kill-ring에 배치됩니다.

함수는 바인딩되지 않습니다.

ShellKillWord

커서에서 현재 단어의 끝으로 입력을 지웁니다. 커서가 단어 사이에 있으면 커서에서 다음 단어의 끝으로 입력이 지워집니다. 지워진 텍스트는 kill-ring에 배치됩니다.

함수는 바인딩되지 않습니다.

SwapCharacters

현재 문자와 해당 문자 앞에 있는 문자를 교환합니다.

  • Emacs 모드: Ctrl+t
  • Vi 삽입 모드: Ctrl+t
  • Vi 명령 모드: <Ctrl+t>

실행 취소

이전 편집을 실행 취소합니다.

  • Windows 모드: Ctrl+z
  • Emacs 모드: Ctrl+_, Ctrl+x,Ctrl+u
  • Vi 삽입 모드: Ctrl+z
  • Vi 명령 모드: <Ctrl+z>, <u>

실행 취소

줄에 대한 이전 편집 내용을 모두 실행 취소합니다.

  • Vi 명령 모드: <U>

UnixWordRubout

현재 단어의 시작에서 커서로 입력을 지웁니다. 커서가 단어 사이에 있으면 이전 단어의 시작에서 커서로 입력이 지워집니다. 지워진 텍스트는 kill-ring에 배치됩니다.

  • Emacs 모드: Ctrl+w

UpcaseWord

PSReadLine 2.3.0에 추가됨

다음 단어를 대문자로 변환합니다.

  • Emacs 모드: Alt+u, Escape,u

ValidateAndAcceptLine

현재 입력을 실행하려고 시도합니다. 현재 입력이 불완전한 경우(예: 닫는 괄호, 대괄호 또는 따옴표가 누락됨) 연속 프롬프트가 다음 줄에 표시되고 PSReadLine은 키가 현재 입력을 편집할 때까지 기다립니다.

  • Emacs 모드: Ctrl+m

ViAcceptLine

줄을 수락하고 삽입 모드로 전환합니다.

  • Vi 명령 모드: <Enter>

ViAcceptLineOrExit

Emacs 모드의 DeleteCharOrExit와 비슷하지만 문자를 삭제하는 대신 줄을 허용합니다.

  • Vi 삽입 모드: Ctrl+d
  • Vi 명령 모드: <Ctrl+d>

ViAppendLine

새 줄이 현재 줄 아래에 삽입됩니다.

  • Vi 명령 모드: <o>

ViBackwardDeleteGlob

공백만 단어 구분 기호로 사용하여 이전 단어를 삭제합니다.

  • Vi 명령 모드: <d,B>

ViBackwardGlob

공백만 구분 기호로 사용하여 커서를 이전 단어의 시작 부분으로 다시 이동합니다.

  • Vi 명령 모드: <B>

ViBackwardReplaceGlob

공백으로 구분된 이전 단어의 시작 부분까지 뒤로 삭제하고 삽입 모드로 전환합니다.

  • Vi 명령 모드: <c,B>

ViBackwardReplaceLine

커서의 왼쪽 선과 처음부터 끝까지 바꿉니다.

  • Vi 명령 모드: <c,0>

ViBackwardReplaceLineToFirstChar

커서의 왼쪽 줄과 한 문자를 제외한 모든 문자를 줄의 시작 부분으로 바꿉니다.

  • Vi 명령 모드: <c,^>

ViBackwardReplaceWord

이전 단어를 바꿉다.

  • Vi 명령 모드: <c,B>

ViDeleteBrace

일치하는 중괄호, 괄호 또는 대괄호를 찾아 중괄호를 포함하여 내의 모든 내용을 삭제합니다.

  • Vi 명령 모드: <d,%>

ViDeleteEndOfGlob

단어의 끝까지 삭제합니다.

  • Vi 명령 모드: <d,E>

ViDeleteGlob

다음 GLOB(공백으로 구분된 단어)를 삭제합니다.

  • Vi 명령 모드: <d,W>

ViDeleteToBeforeChar

지정된 문자까지 삭제합니다.

  • Vi 명령 모드: <d,t>

ViDeleteToBeforeCharBackward

지정된 문자까지 삭제합니다.

  • Vi 명령 모드: <d,T>

ViDeleteToChar

지정된 문자까지 삭제합니다.

  • Vi 명령 모드: <d,f>

ViDeleteToCharBackward

지정된 문자까지 뒤로 삭제합니다.

  • Vi 명령 모드: <d,F>

ViInsertAtBegining

삽입 모드로 전환하고 커서를 줄의 시작 부분에 배치합니다.

  • Vi 명령 모드: <I>

ViInsertAtEnd

삽입 모드로 전환하고 커서를 줄 끝에 놓습니다.

  • Vi 명령 모드: <A>

ViInsertLine

새 줄이 현재 줄 위에 삽입됩니다.

  • Vi 명령 모드: <O>

ViInsertWithAppend

현재 줄 위치에서 추가합니다.

  • Vi 명령 모드: <a>

ViInsertWithDelete

현재 문자를 삭제하고 삽입 모드로 전환합니다.

  • Vi 명령 모드: <s>

ViJoinLines

현재 줄과 다음 줄을 조인합니다.

  • Vi 명령 모드: <J>

ViReplaceBrace

현재 중괄호 문자와 일치하는 파트너 사이의 모든 문자를 바꿉합니다.

  • Vi 명령 모드: <c,%>

ViReplaceEndOfGlob

공백으로 구분된 단어의 끝까지 삭제하고 삽입 모드로 전환합니다.

  • Vi 명령 모드: <c,E>

ViReplaceEndOfWord

공백 및 일반 구분 기호로 구분된 단어의 끝까지 삭제하고 삽입 모드로 전환합니다.

  • Vi 명령 모드: <c,E>

ViReplaceGlob

공백으로 구분된 다음 단어의 시작 부분으로 삭제하고 삽입 모드로 전환합니다.

  • Vi 명령 모드: <c,W>

ViReplaceLine

전체 명령줄을 지웁다.

  • Vi 명령 모드: <S>, <c,c>

ViReplaceToBeforeChar

지정된 문자까지 대체합니다.

  • Vi 명령 모드: <c,t>

ViReplaceToBeforeCharBackward

지정된 문자까지 대체합니다.

  • Vi 명령 모드: <c,T>

ViReplaceToChar

지정된 문자까지 삭제합니다.

  • Vi 명령 모드: <c,f>

ViReplaceToCharBackward

지정된 문자까지 대체합니다.

  • Vi 명령 모드: <c,F>

ViReplaceToEnd

커서 위치에서 줄 끝으로 문자를 바꿉니다.

  • Vi 명령 모드: <c,$>, <C>

ViReplaceUntilEsc

이스케이프를 입력하거나 줄이 수락될 때까지 현재 문자를 바꿉다.

  • Vi 명령 모드: <r>

ViReplaceWord

현재 단어를 바꿉다.

  • Vi 명령 모드: <c,W>

ViYankBeginningOfLine

버퍼의 시작 부분에서 커서로 양크합니다.

  • Vi 명령 모드: <y,0>

ViYankEndOfGlob

커서에서 WORD의 끝으로 양크합니다.

  • Vi 명령 모드: <y,E>

ViYankEndOfWord

커서에서 단어의 끝으로 양크합니다.

  • Vi 명령 모드: <y,e>

ViYankLeft

커서의 왼쪽에 있는 양크 문자입니다.

  • Vi 명령 모드: <y,h>

ViYankLine

전체 버퍼를 양크합니다.

  • Vi 명령 모드: <y,y>

ViYankNextGlob

커서에서 다음 WORD의 시작 부분까지 양크합니다.

  • Vi 명령 모드: <y,W>

ViYankNextWord

커서 뒤에 단어를 곱합니다.

  • Vi 명령 모드: <y,w>

ViYankPercent

일치하는 중괄호에서 양크합니다.

  • Vi 명령 모드: <y,%>

ViYankPreviousGlob

WORD의 시작 부분에서 커서로 양크합니다.

  • Vi 명령 모드: <y,B>

ViYankPreviousWord

커서 앞에 단어를 곱합니다.

  • Vi 명령 모드: <y,b>

ViYankRight

커서의 오른쪽 아래와 오른쪽에 있는 양크 문자입니다.

  • Vi 명령 모드: <y,l>, <y,Spacebar>

ViYankToEndOfLine

커서에서 버퍼의 끝으로 양크합니다.

  • Vi 명령 모드: <y,$>

ViYankToFirstChar

공백이 아닌 첫 번째 문자에서 커서로 양크합니다.

  • Vi 명령 모드: <y,^>

십중팔구

가장 최근에 종료된 텍스트를 입력에 추가합니다.

  • Emacs 모드: Ctrl+y

YankLastArg

이전 기록 줄의 마지막 인수를 양크합니다. 인수를 처음 호출하면 YankNthArg처럼 동작합니다. 여러 번 호출된 경우 기록을 반복하고 arg가 방향을 설정합니다(음수는 방향을 반대로 바뀝니다.)

  • Windows 모드: Alt+.
  • Emacs 모드: Alt+., Alt+_, Escape,.Escape,_

YankNthArg

이전 기록 줄의 첫 번째 인수(명령 뒤)를 양크합니다. 인수를 사용하여 nth 인수(0부터 시작)를 양보하고 인수가 음수이면 마지막 인수에서 시작합니다.

  • Emacs 모드: Ctrl+Alt+y, Escape,Ctrl+y

YankPop

이전 작업이 Yank 또는 YankPop인 경우 이전에 양크한 텍스트를 kill-ring에서 종료된 다음 텍스트로 바꿉다.

  • Emacs 모드: Alt+y, Escape,y

완료 함수

완료

커서를 둘러싼 텍스트에서 완료를 수행합니다. 가능한 완료가 여러 번 있는 경우 완료에 가장 긴 명확한 접두사를 사용합니다. 가장 긴 명확한 완료를 완료하려고 하면 가능한 완료 목록이 표시됩니다.

  • Emacs 모드: Tab

커서를 둘러싼 텍스트에서 완료를 수행합니다. 가능한 완료가 여러 번 있는 경우 완료에 가장 긴 명확한 접두사를 사용합니다. 가장 긴 명확한 완료를 완료하려고 하면 가능한 완료 목록이 표시됩니다.

  • Windows 모드: Ctrl+@Ctrl+Spacebar
  • Emacs 모드: Ctrl+Spacebar

PossibleCompletions

가능한 완료 목록을 표시합니다.

  • Emacs 모드: Alt+=
  • Vi 삽입 모드: Ctrl+Spacebar
  • Vi 명령 모드: <Ctrl+Spacebar>

TabCompleteNext

커서를 둘러싼 텍스트를 다음으로 완료하도록 시도합니다.

  • Windows 모드: Tab
  • Vi 명령 모드: <Tab>

TabCompletePrevious

사용 가능한 이전 완성을 사용하여 커서를 둘러싼 텍스트를 완료하려고 시도합니다.

  • Windows 모드: Shift+Tab
  • Vi 명령 모드: <Shift+Tab>

ViTabCompleteNext

필요한 경우 현재 편집 그룹을 종료하고 TabCompleteNext를 호출합니다.

  • Vi 삽입 모드: Tab

ViTabCompletePrevious

필요한 경우 현재 편집 그룹을 종료하고 TabCompletePrevious를 호출합니다.

  • Vi 삽입 모드: Shift+Tab

커서 이동 함수

BackwardChar

커서를 한 문자 왼쪽으로 이동합니다. 이렇게 하면 커서가 여러 줄 입력의 이전 줄로 이동할 수 있습니다.

  • Windows 모드: LeftArrow
  • Emacs 모드: LeftArrow, Ctrl+b

BackwardWord

커서를 현재 단어의 시작으로 다시 이동하거나 단어 간에 이전 단어의 시작 부분까지 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.

  • Windows 모드: Ctrl+LeftArrow
  • Emacs 모드: Alt+b, Escape,b
  • Vi 삽입 모드: Ctrl+LeftArrow
  • Vi 명령 모드: <Ctrl+LeftArrow>

단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOptionSet-PSReadLineOption을 참조하세요.

BeginningOfLine

입력에 여러 줄이 있는 경우 현재 줄의 시작으로 이동하거나 줄의 시작 부분에 이미 있는 경우 입력의 시작으로 이동합니다. 입력에 한 줄이 있는 경우 입력의 시작으로 이동합니다.

  • Windows 모드: Home
  • Emacs 모드: Home, Ctrl+a
  • Vi 삽입 모드: Home
  • Vi 명령 모드: <Home>

EndOfLine

입력에 여러 줄이 있는 경우 현재 줄의 끝으로 이동하거나 줄 끝에 이미 있는 경우 입력의 끝으로 이동합니다. 입력에 한 줄이 있는 경우 입력의 끝으로 이동합니다.

  • Windows 모드: End
  • Emacs 모드: End, Ctrl+e
  • Vi 삽입 모드: End

ForwardChar

커서를 오른쪽으로 한 문자 이동합니다. 그러면 커서가 여러 줄 입력의 다음 줄로 이동할 수 있습니다.

  • Windows 모드: RightArrow
  • Emacs 모드: RightArrow, Ctrl+f

ForwardWord

커서를 현재 단어의 끝이나 단어 사이에 있는 경우 다음 단어의 끝으로 앞으로 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.

  • Emacs 모드: Alt+f, Escape,f

단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOptionSet-PSReadLineOption을 참조하세요.

GotoBrace

일치하는 중괄호, 괄호 또는 대괄호로 이동합니다.

  • Windows 모드: Ctrl+]
  • Vi 삽입 모드: Ctrl+]
  • Vi 명령 모드: <Ctrl+]>

GotoColumn

인수로 표시된 열로 이동합니다.

  • Vi 명령 모드: <|>

GotoFirstNonBlankOfLine

커서를 줄의 공백이 아닌 첫 번째 문자로 이동합니다.

  • Vi 명령 모드: <^>, <_>

MoveToEndOfLine

커서를 입력 끝으로 이동합니다.

  • Vi 명령 모드: <End>, <$>

MoveToFirstLine

여러 줄 명령의 첫 번째 줄로 이동합니다.

  • Vi 명령 모드: <g,g>

MoveToLastLine

여러 줄 명령의 마지막 줄로 이동합니다.

  • Vi 명령 모드: <G>

NextLine

커서를 다음 줄로 이동합니다.

  • 함수는 바인딩되지 않습니다.

NextWord

커서를 다음 단어의 시작 부분까지 앞으로 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.

  • Windows 모드: Ctrl+RightArrow
  • Vi 삽입 모드: Ctrl+RightArrow
  • Vi 명령 모드: <Ctrl+RightArrow>

단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOptionSet-PSReadLineOption을 참조하세요.

NextWordEnd

커서를 현재 단어의 끝이나 단어 사이에 있는 경우 다음 단어의 끝으로 앞으로 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.

  • Vi 명령 모드: <e>

단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOptionSet-PSReadLineOption을 참조하세요.

이전 줄

커서를 이전 줄로 이동합니다.

  • 함수는 바인딩되지 않습니다.

ShellBackwardWord

커서를 현재 단어의 시작으로 다시 이동하거나 단어 간에 이전 단어의 시작 부분까지 이동합니다. Word 경계는 PowerShell 토큰으로 정의됩니다.

  • 함수는 바인딩되지 않습니다.

ShellForwardWord

커서를 다음 단어의 시작 부분까지 앞으로 이동합니다. Word 경계는 PowerShell 토큰으로 정의됩니다.

  • 함수는 바인딩되지 않습니다.

ShellNextWord

커서를 현재 단어의 끝이나 단어 사이에 있는 경우 다음 단어의 끝으로 앞으로 이동합니다. Word 경계는 PowerShell 토큰으로 정의됩니다.

  • 함수는 바인딩되지 않습니다.

ViBackwardChar

Vi 편집 모드에서 커서 한 문자를 왼쪽으로 이동합니다. 이렇게 하면 커서가 여러 줄 입력의 이전 줄로 이동할 수 있습니다.

  • Vi 삽입 모드: LeftArrow
  • Vi 명령 모드: <LeftArrow>, <Backspace><h>

ViBackwardWord

커서를 현재 단어의 시작으로 다시 이동하거나 단어 간에 이전 단어의 시작 부분까지 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.

  • Vi 명령 모드: <b>

단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOptionSet-PSReadLineOption을 참조하세요.

ViEndOfGlob

공백으로 구분된 대로 커서를 이 단어의 끝으로 이동합니다.

  • Vi 명령 모드: <E>

ViEndOfPreviousGlob

공백만 단어 구분 기호로 사용하여 이전 단어의 끝으로 이동합니다.

  • 함수는 바인딩되지 않습니다.

ViForwardChar

Vi 편집 모드에서 커서 한 문자를 오른쪽으로 이동합니다. 그러면 커서가 여러 줄 입력의 다음 줄로 이동할 수 있습니다.

  • Vi 삽입 모드: RightArrow
  • Vi 명령 모드: <RightArrow>, <Spacebar><l>

ViGotoBrace

GotoBrace와 유사하지만 토큰 기반이 아닌 문자 기반입니다.

  • Vi 명령 모드: <%>

ViNextGlob

공백만 단어 구분 기호로 사용하여 다음 단어로 이동합니다.

  • Vi 명령 모드: <W>

ViNextWord

커서를 다음 단어의 시작 부분까지 앞으로 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.

  • Vi 명령 모드: <w>

단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOptionSet-PSReadLineOption을 참조하세요.

기록 함수

BeginningOfHistory

기록의 첫 번째 항목으로 이동합니다.

  • Emacs 모드: Alt+<

ClearHistory

PSReadLine에서 기록을 지웁니다. PowerShell 기록에는 영향을 주지 않습니다.

  • Windows 모드: Alt+F7

EndOfHistory

기록의 마지막 항목(현재 입력)으로 이동합니다.

  • Emacs 모드: Alt+>

ForwardSearchHistory

기록을 통해 증분 전달 검색을 수행합니다.

  • Windows 모드: Ctrl+s
  • Emacs 모드: Ctrl+s
  • Vi 삽입 모드: Ctrl+s
  • Vi 명령 모드: <Ctrl+s>

HistorySearchBackward

현재 입력을 시작과 입력 및 커서 사이의 문자와 일치하는 PSReadLine 기록의 '이전' 항목으로 바꿉니다.

  • Windows 모드: F8

HistorySearchForward

현재 입력을 시작과 입력 및 커서 사이의 문자와 일치하는 PSReadLine 기록의 '다음' 항목으로 바꿉니다.

  • Windows 모드: Shift+F8

NextHistory

현재 입력을 PSReadLine 기록의 '다음' 항목으로 바꿉니다.

  • Windows 모드: DownArrow
  • Emacs 모드: DownArrow, Ctrl+n
  • Vi 삽입 모드: DownArrow
  • Vi 명령 모드: <DownArrow>, <j><+>

PreviousHistory

현재 입력을 PSReadLine 기록의 '이전' 항목으로 바꿉니다.

  • Windows 모드: UpArrow
  • Emacs 모드: UpArrow, Ctrl+p
  • Vi 삽입 모드: UpArrow
  • Vi 명령 모드: <UpArrow>, <k><->

ReverseSearchHistory

기록을 통해 역방향으로 증분 검색을 수행합니다.

  • Windows 모드: Ctrl+r
  • Emacs 모드: Ctrl+r
  • Vi 삽입 모드: Ctrl+r
  • Vi 명령 모드: <Ctrl+r>

ViSearchHistoryBackward

검색 문자열을 묻는 메시지를 표시하고 AcceptLine에서 검색을 시작합니다.

  • Vi 명령 모드: </>

기타 함수

CaptureScreen

대화형 화면 캡처 시작 - 위쪽/아래쪽 화살표가 선을 선택하고 선택한 텍스트를 클립보드에 텍스트 및 HTML로 입력합니다.

  • 함수는 바인딩되지 않습니다.

ClearScreen

화면을 지우고 화면 맨 위에 현재 선을 그립니다.

  • Windows 모드: Ctrl+l
  • Emacs 모드: Ctrl+l
  • Vi 삽입 모드: Ctrl+l
  • Vi 명령 모드: <Ctrl+l>

DigitArgument

새 숫자 인수를 시작하여 다른 함수에 전달합니다. 이를 키프레스로 호출되는 다음 함수의 승수로 사용할 수 있습니다. 예를 들어 숫자 <Alt+1><Alt+0> 인수 값을 10으로 설정합니다. 그런 다음 키를 누르면 # 입력 줄에 10 # 자(##########)가 전송됩니다. 마찬가지로, 다른 작업(예 <Delete> : 또는 Left-Arrow.)과 함께 사용할 수 있습니다.

  • Windows 모드: Alt+0,, Alt+1,Alt+3Alt+2, Alt+4Alt+5, Alt+6, Alt+7Alt+8, , Alt+9Alt+-
  • Emacs 모드: Alt+0,, Alt+1,Alt+3Alt+2, Alt+4, Alt+5Alt+6, Alt+7Alt+8, Alt+9Alt+-
  • Vi 명령 모드: <0>,<1>, ,<3><2>, <4><5>, <6>, <7><8><9>

InvokePrompt

현재 프롬프트를 지우고 프롬프트 함수를 호출하여 프롬프트를 다시 표시합니다. 상태를 변경하는 사용자 지정 키 처리기에 유용합니다. 예를 들어 현재 디렉터리를 변경합니다.

  • 함수는 바인딩되지 않습니다.

ScrollDisplayDown

디스플레이를 한 화면 아래로 스크롤합니다.

  • Windows 모드: PageDown
  • Emacs 모드: PageDown

ScrollDisplayDownLine

디스플레이를 한 줄 아래로 스크롤합니다.

  • Windows 모드: Ctrl+PageDown
  • Emacs 모드: Ctrl+PageDown

ScrollDisplayToCursor

표시를 커서로 스크롤합니다.

  • Emacs 모드: Ctrl+End

ScrollDisplayTop

디스플레이를 위쪽으로 스크롤합니다.

  • Emacs 모드: Ctrl+Home

ScrollDisplayUp

디스플레이를 한 화면 위로 스크롤합니다.

  • Windows 모드: PageUp
  • Emacs 모드: PageUp

ScrollDisplayUpLine

디스플레이를 한 줄 위로 스크롤합니다.

  • Windows 모드: Ctrl+PageUp
  • Emacs 모드: Ctrl+PageUp

ShowCommandHelp

전체 cmdlet 도움말 보기를 제공합니다. 커서가 완전히 확장된 매개 변수의 끝에 있으면 키를 누르면 <F1> 해당 매개 변수의 위치에 도움말이 표시됩니다.

도움말은 Microsoft.PowerShell.Pager의 호출기를 사용하여 대체 화면 버퍼에 표시됩니다. 호출기를 종료하면 원래 화면의 원래 커서 위치로 돌아갑니다. 이 호출기가 Windows 터미널 같은 최신 터미널 애플리케이션에서만 작동합니다.

  • Windows 모드: F1
  • Emacs 모드: F1
  • Vi 삽입 모드: F1
  • Vi 명령 모드: <F1>

ShowKeyBindings

모든 바인딩된 키를 표시합니다.

  • Windows 모드: Ctrl+Alt+?
  • Emacs 모드: Ctrl+Alt+?
  • Vi 삽입 모드: Ctrl+Alt+?

ShowParameterHelp

다음과 같이 MenuComplete현재 명령줄 아래에 표시하여 매개 변수에 대한 동적 도움말을 제공합니다. 키를 누 <Alt+h> 를 때 커서는 완전히 확장된 매개 변수 이름의 끝에 있어야 합니다.

  • Windows 모드: Alt+h
  • Emacs 모드: Alt+h
  • Vi 삽입 모드: Alt+h
  • Vi 명령 모드: <Alt+h>

ViCommandMode

현재 운영 모드를 Vi-Insert에서 Vi-Command로 전환합니다.

  • Vi 삽입 모드: Escape

ViDigitArgumentInChord

새 숫자 인수를 시작하여 vi의 코드 중 하나에 있는 동안 다른 함수에 전달합니다.

  • 함수는 바인딩되지 않습니다.

ViEditVisually

또는 $env:VISUAL에 지정된 텍스트 편집기에서 명령줄을 $env:EDITOR 편집합니다.

  • Emacs 모드: Ctrl+x,Ctrl+e
  • Vi 명령 모드: <v>

ViExit

셸을 종료합니다.

  • 함수는 바인딩되지 않습니다.

ViInsertMode

삽입 모드로 전환합니다.

  • Vi 명령 모드: <i>

WhatIsKey

키를 읽고 키가 바인딩된 내용을 알려주세요.

  • Windows 모드: Alt+?
  • Emacs 모드: Alt+?

예측 함수

AcceptNextSuggestionWord

인라인 또는 선택한 제안의 다음 단어 수락

  • 함수는 바인딩되지 않습니다.

AcceptSuggestion

예측에 뷰 스타일로 사용하는 InlineView 경우 현재 인라인 제안을 수락합니다.

  • 함수는 바인딩되지 않습니다.

NextSuggestion

예측을 위해 보기 스타일로 사용하는 ListView 경우 목록에서 다음 제안으로 이동합니다.

  • 함수는 바인딩되지 않습니다.

PreviousSuggestion

예측을 위해 보기 스타일로 사용하는 ListView 경우 목록에서 이전 제안으로 이동합니다.

  • 함수는 바인딩되지 않습니다.

ShowFullPredictionTooltip

전체 보기에서 현재 선택한 목록 항목의 도구 설명을 표시합니다.

  • Windows 모드: F4
  • Emacs 모드: F4
  • Vi 삽입 모드: F4

SwitchPredictionView

예측에 대한 InlineView 뷰 스타일을 전환합니다.ListView

  • Windows 모드: F2
  • Emacs 모드: F2
  • Vi 삽입 모드: F2

검색 함수

CharacterSearch

문자를 읽고 그 문자의 다음 발생을 검색합니다. 인수를 지정한 경우 n번째 항목에 대해 앞으로(또는 음수인 경우 뒤로) 검색합니다.

  • Windows 모드: F3
  • Emacs 모드: Ctrl+]
  • Vi 삽입 모드: F3
  • Vi 명령 모드: <F3>

CharacterSearchBackward

문자를 읽고 그 문자의 다음 발생을 뒤로 검색합니다. 인수를 지정한 경우 n번째 항목에 대해 뒤로(또는 음수인 경우 앞으로)를 검색합니다.

  • Windows 모드: Shift+F3
  • Emacs 모드: Ctrl+Alt+]
  • Vi 삽입 모드: Shift+F3
  • Vi 명령 모드: <Shift+F3>

RepeatLastCharSearch

마지막으로 기록된 문자 검색을 반복합니다.

  • Vi 명령 모드: <;>

RepeatLastCharSearchBackwards

마지막으로 기록된 문자 검색을 반대 방향으로 반복합니다.

  • Vi 명령 모드: <,>

RepeatSearch

이전과 동일한 방향으로 마지막 검색을 반복합니다.

  • Vi 명령 모드: <n>

RepeatSearchBackward

이전과 동일한 방향으로 마지막 검색을 반복합니다.

  • Vi 명령 모드: <N>

SearchChar

다음 문자를 읽은 다음, 앞으로 찾아보세요.

  • Vi 명령 모드: <f>

SearchCharBackward

다음 문자를 읽은 다음 뒤로 이동하여 찾습니다.

  • Vi 명령 모드: <F>

SearchCharBackwardWithBackoff

다음 문자를 읽은 다음, 뒤로 이동한 다음, 문자를 다시 찾습니다.

  • Vi 명령 모드: <T>

SearchCharWithBackoff

다음 문자를 읽은 다음, 찾아서 앞으로 한 다음, 문자를 다시 찾습니다.

  • Vi 명령 모드: <t>

SearchForward

검색 문자열을 묻는 메시지를 표시하고 AcceptLine에서 검색을 시작합니다.

  • Vi 명령 모드: <?>

선택 함수

ExchangePointAndMark

커서는 표시 위치에 배치되고 표시는 커서의 위치로 이동됩니다.

  • Emacs 모드: Ctrl+x,Ctrl+x

전체 선택

전체 줄을 선택합니다.

  • Windows 모드: Ctrl+a

SelectBackwardChar

이전 문자를 포함하도록 현재 선택 영역을 조정합니다.

  • Windows 모드: Shift+LeftArrow
  • Emacs 모드: Shift+LeftArrow

SelectBackwardsLine

커서에서 줄의 시작 부분에 포함하도록 현재 선택 영역을 조정합니다.

  • Windows 모드: Shift+Home
  • Emacs 모드: Shift+Home

SelectBackwardWord

이전 단어를 포함하도록 현재 선택 영역을 조정합니다.

  • Windows 모드: Shift+Ctrl+LeftArrow
  • Emacs 모드: Alt+B

SelectCommandArgument

명령 인수를 시각적으로 선택합니다. 인수 선택은 스크립트 블록 내에서 범위가 지정됩니다. 커서 위치에 따라 가장 안쪽의 스크립트 블록에서 가장 바깥쪽 스크립트 블록으로 검색하고 스크립트 블록 범위에서 인수를 찾으면 중지됩니다.

이 함수는 DigitArgument를 적용합니다. 양수 또는 음수 인수 값을 현재 선택한 인수의 정방향 또는 뒤로 오프셋으로 처리하거나 인수가 선택되지 않은 경우 현재 커서 위치에서 처리합니다.

  • Windows 모드: Alt+a
  • Emacs 모드: Alt+a

SelectForwardChar

다음 문자를 포함하도록 현재 선택 영역을 조정합니다.

  • Windows 모드: Shift+RightArrow
  • Emacs 모드: Shift+RightArrow

SelectForwardWord

ForwardWord를 사용하여 다음 단어를 포함하도록 현재 선택 영역을 조정합니다.

  • Emacs 모드: Alt+F

SelectLine

커서에서 줄 끝까지 포함하도록 현재 선택 영역을 조정합니다.

  • Windows 모드: Shift+End
  • Emacs 모드: Shift+End

SelectNextWord

다음 단어를 포함하도록 현재 선택 영역을 조정합니다.

  • Windows 모드: Shift+Ctrl+RightArrow

SelectShellBackwardWord

ShellBackwardWord를 사용하여 이전 단어를 포함하도록 현재 선택 영역을 조정합니다.

  • 함수는 바인딩되지 않습니다.

SelectShellForwardWord

ShellForwardWord를 사용하여 다음 단어를 포함하도록 현재 선택 영역을 조정합니다.

  • 함수는 바인딩되지 않습니다.

SelectShellNextWord

ShellNextWord를 사용하여 다음 단어를 포함하도록 현재 선택 영역을 조정합니다.

  • 함수는 바인딩되지 않습니다.

SetMark

후속 편집 명령에서 사용할 커서의 현재 위치를 표시합니다.

  • Emacs 모드: Ctrl+@

사용자 지정 키 바인딩 지원 API

다음 함수는 Microsoft.PowerShell.PSConsoleReadLine에서 공개되지만 키에 직접 바인딩할 수는 없습니다. 대부분은 사용자 지정 키 바인딩에 유용합니다.

void AddToHistory(string command)

명령줄을 실행하지 않고 기록에 추가합니다.

void ClearKillRing()

킬 링을 지웁다. 이는 주로 테스트에 사용됩니다.

void Delete(int start, int length)

처음부터 길이 문자를 삭제합니다. 이 작업은 실행 취소/다시 실행을 지원합니다.

void Ding()

사용자의 기본 설정에 따라 Ding 작업을 수행합니다.

void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
  [ref] ParseError[] parseErrors, [ref] int cursor)

이 두 함수는 입력 버퍼의 현재 상태에 대한 유용한 정보를 검색합니다. 첫 번째는 간단한 경우에 더 일반적으로 사용됩니다. 두 번째는 바인딩이 Ast를 사용하여 고급 작업을 수행하는 경우 사용됩니다.

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(bool includeBound, bool includeUnbound)

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(string[] Chord)

이 두 함수는 .에서 Get-PSReadLineKeyHandler사용됩니다. 첫 번째는 모든 키 바인딩을 가져오는 데 사용됩니다. 두 번째는 특정 키 바인딩을 가져오는 데 사용됩니다.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

이 함수는 Get-PSReadLineOption에서 사용되며 사용자 지정 키 바인딩에 너무 유용하지 않을 수 있습니다.

void GetSelectionState([ref] int start, [ref] int length)

명령줄에 선택 항목이 없으면 함수는 시작 및 길이 모두에서 -1을 반환합니다. 명령줄에 선택 영역이 있는 경우 선택 영역의 시작 및 길이가 반환됩니다.

void Insert(char c)
void Insert(string s)

커서에 문자 또는 문자열을 삽입합니다. 이 작업은 실행 취소/다시 실행을 지원합니다.

string ReadLine(runspace remoteRunspace,
  System.Management.Automation.EngineIntrinsics engineIntrinsics)

PSReadLine에 대한 기본 진입점입니다. 재귀를 지원하지 않으므로 사용자 지정 키 바인딩에는 유용하지 않습니다.

void RemoveKeyHandler(string[] key)

이 함수는 Remove-PSReadLineKeyHandler에서 사용되며 사용자 지정 키 바인딩에 너무 유용하지 않을 수 있습니다.

void Replace(int start, int length, string replacement)

일부 입력을 대체합니다. 이 작업은 실행 취소/다시 실행을 지원합니다. 취소에 대한 단일 작업으로 처리되므로 Delete 다음에 Insert를 사용하는 것이 좋습니다.

void SetCursorPosition(int cursor)

커서를 지정된 오프셋으로 이동합니다. 커서 이동은 실행 취소에 대해 추적되지 않습니다.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

이 함수는 cmdlet Set-PSReadLineOption에서 사용하는 도우미 메서드이지만 설정을 일시적으로 변경하려는 사용자 지정 키 바인딩에 유용할 수 있습니다.

bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
  int defaultNumericArg)

이 도우미 메서드는 DigitArgument를 적용하는 사용자 지정 바인딩에 사용됩니다. 일반적인 호출은 다음과 같습니다.

[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
  [ref]$numericArg, 1)

주의

OnIdle 이벤트의 동작

  • PSReadLine을 사용하는 경우 시간이 초과되면 OnIdle 이벤트가 발생 ReadKey() 합니다(300ms에 입력 없음). 사용자가 명령줄을 편집하는 동안 이벤트를 알릴 수 있습니다. 예를 들어 사용자가 사용할 매개 변수를 결정하는 데 도움을 읽고 있습니다.

    PSReadLine 2.2.0-beta4 부터 OnIdle 동작은 시간 제한이 있고 현재 편집 버퍼가 비어 있는 ReadKey() 경우에만 이벤트 신호를 표시하도록 변경되었습니다.

참고 항목