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 모드:
Backspace
Ctrl+h
- Emacs 모드:
Backspace
, ,Ctrl+Backspace
Ctrl+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+Backspace
Ctrl+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+d
Ctrl+Delete
- Emacs 모드:
Alt+d
,Escape,d
- Vi 삽입 모드:
Ctrl+Delete
- Vi 명령 모드:
<Ctrl+Delete>
붙여넣기
시스템 클립보드에서 텍스트를 붙여넣습니다.
- Windows 모드:
Ctrl+v
Shift+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
완료 함수
Complete
커서를 둘러싼 텍스트에서 완료를 수행합니다. 가능한 완료가 여러 번 있는 경우 완료에 가장 긴 명확한 접두사를 사용합니다. 가장 긴 명확한 완료를 완료하려고 하면 가능한 완료 목록이 표시됩니다.
- Emacs 모드:
Tab
MenuComplete
커서를 둘러싼 텍스트에서 완료를 수행합니다. 가능한 완료가 여러 번 있는 경우 완료에 가장 긴 명확한 접두사를 사용합니다. 가장 긴 명확한 완료를 완료하려고 하면 가능한 완료 목록이 표시됩니다.
- 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-PSReadLineOption 및 Set-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-PSReadLineOption 및 Set-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-PSReadLineOption 및 Set-PSReadLineOption을 참조하세요.
NextWordEnd
커서를 현재 단어의 끝이나 단어 사이에 있는 경우 다음 단어의 끝으로 앞으로 이동합니다. Word 경계는 구성 가능한 문자 집합으로 정의됩니다.
- Vi 명령 모드:
<e>
단어 경계를 정의하는 문자는 PSConsoleReadLineOptions 개체의 WordDelimiters 속성에 구성됩니다. WordDelimiters 속성을 보거나 변경하려면 Get-PSReadLineOption 및 Set-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-PSReadLineOption 및 Set-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-PSReadLineOption 및 Set-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+3
Alt+2
,Alt+4
Alt+5
,Alt+6
,Alt+7
Alt+8
, ,Alt+9
Alt+-
- Emacs 모드:
Alt+0
,,Alt+1
,Alt+3
Alt+2
,Alt+4
,Alt+5
Alt+6
,Alt+7
Alt+8
,Alt+9
Alt+-
- 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()
경우에만 이벤트 신호를 표시하도록 변경되었습니다.
참고 항목
PowerShell