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 はキーが現在の入力を編集するのを待機します。 これは、1 行の入力が単独で完了した場合でも、複数行の入力を 1 つのコマンドとして入力する場合に便利です。
- 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 と同様に- 行の先頭までの位置からテキストを削除しますが、削除されたテキストはキル リングに配置されません。
- Vi コマンド モード:
<d,0>
BackwardDeleteWord
前の単語を削除します。
- Viコマンドモード:
<Ctrl+w>
、<d,b>
BackwardKillInput
入力の先頭からカーソルまでのテキストをクリアします。 クリアされたテキストはキルリングに配置されます。
- Emacsモード:
Ctrl+u
、Ctrl+x,Backspace
BackwardKillLine
現在の論理行の先頭からカーソルまでのテキストをクリアします。 クリアされたテキストはキルリングに配置されます。
- 関数がバインドされていない。
BackwardKillWord
現在の単語の先頭からカーソルへの入力をクリアします。 カーソルが単語間にある場合、入力は前の単語の先頭からカーソルまで消去されます。 クリアされたテキストはキルリングに配置されます。
- 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,$>
DeleteWord
次の単語を削除します。
- Vi コマンド モード:
<d,w>
DowncaseWord
PSReadLine 2.3.0 で追加
次の単語を小文字に変換します。
- Emacsモード:
Alt+l
、Escape,l
ForwardDeleteInput
KillLine と同様に- 入力のポイントから末尾までテキストを削除しますが、削除されたテキストは kill リングに配置されません。
- Windows モード:
Ctrl+End
- Vi 挿入モード:
Ctrl+End
- Vi コマンド モード:
<Ctrl+End>
ForwardDeleteLine
現在の論理行の末尾までの位置からテキストを削除しますが、削除されたテキストはキル リングに配置されません。
- 関数がバインドされていない
InsertLineAbove
カーソルが現在の行のどこにあるかに関係なく、現在の行の上に新しい空の行が作成されます。 カーソルは新しい行の先頭に移動します。
- Windows モード:
Ctrl+Enter
InsertLineBelow
カーソルが現在の行のどこにあるかに関係なく、現在の行の下に新しい空の行が作成されます。 カーソルは新しい行の先頭に移動します。
- Windows モード:
Shift+Ctrl+Enter
InvertCase
現在の文字の大文字と小文字を反転し、次の文字に移動します。
- Vi コマンド モード:
<~>
KillLine
カーソルから入力の末尾まで入力をクリアします。 クリアされたテキストはキルリングに配置されます。
- Emacs モード:
Ctrl+k
KillRegion
カーソルとマークの間のテキストを強制終了します。
- 関数がバインドされていない。
KillWord
カーソルから現在の単語の末尾までの入力をクリアします。 カーソルが単語間にある場合、入力はカーソルから次の単語の末尾まで消去されます。 クリアされたテキストはキルリングに配置されます。
- 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>
大事な
Paste 関数を使用すると、クリップボード バッファーの内容全体が PSReadLine の入力バッファーに貼り付けられます。 その後、入力バッファーが PowerShell パーサーに渡されます。 コンソール アプリケーションの 右クリック 貼り付けメソッドを使用して貼り付けた入力は、一度に 1 文字ずつ入力バッファーにコピーされます。 改行文字がコピーされると、入力バッファーがパーサーに渡されます。 そのため、入力は一度に 1 行ずつ解析されます。 貼り付けメソッドの違いにより、実行動作が異なります。
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
現在の文字を 1 文字のみに置き換えます。
- Vi コマンド モード:
<r>
RevertLine
すべての入力を現在の入力に戻します。
- Windows モード:
Escape
- Emacsモード:
Alt+r
、Escape,r
ShellBackwardKillWord
現在の単語の先頭からカーソルへの入力をクリアします。 カーソルが単語間にある場合、入力は前の単語の先頭からカーソルまで消去されます。 クリアされたテキストはキルリングに配置されます。
関数がバインドされていない。
ShellKillWord
カーソルから現在の単語の末尾までの入力をクリアします。 カーソルが単語間にある場合、入力はカーソルから次の単語の末尾まで消去されます。 クリアされたテキストはキルリングに配置されます。
関数がバインドされていない。
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>
UndoAll
行の以前の編集をすべて元に戻します。
- Vi コマンド モード:
<U>
UnixWordRubout
現在の単語の先頭からカーソルへの入力をクリアします。 カーソルが単語間にある場合、入力は前の単語の先頭からカーソルまで消去されます。 クリアされたテキストはキルリングに配置されます。
- 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
カーソルの左側の行と、1 文字を含むすべての文字を行の先頭に置き換えます。
- 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
前の履歴行の最初の引数 (コマンドの後) をヤンクします。 引数を指定すると、n 番目の引数 (0 から始まる) をヤンクし、引数が負の場合は最後の引数から開始します。
- Emacsモード:
Ctrl+Alt+y
、Escape,Ctrl+y
YankPop
前の操作が Yank または YankPop の場合は、以前にヤンクされたテキストを、キル リングから次に強制終了されたテキストに置き換えます。
- Emacsモード:
Alt+y
、Escape,y
完了関数
完成
カーソルを囲むテキストに対して完了の実行を試みます。 複数の補完が可能な場合は、完了に最も長い明確なプレフィックスが使用されます。 最も長い明確な完了を完了しようとすると、可能な完了の一覧が表示されます。
- 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
カーソルを 1 文字左に移動します。 これにより、カーソルが複数行入力の前の行に移動する場合があります。
- Windows モード:
LeftArrow
- Emacsモード:
LeftArrow
、Ctrl+b
BackwardWord
カーソルを現在の単語の先頭に戻すか、単語間の場合は前の単語の先頭に戻します。 単語の境界は、構成可能な文字セットによって定義されます。
- Windows モード:
Ctrl+LeftArrow
- Emacsモード:
Alt+b
、Escape,b
- Vi 挿入モード:
Ctrl+LeftArrow
- Vi コマンド モード:
<Ctrl+LeftArrow>
単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。
BeginningOfLine
入力に複数の行がある場合は、現在の行の先頭に移動するか、既に行の先頭にある場合は、入力の先頭に移動します。 入力に単一の行がある場合は、入力の先頭に移動します。
- Windows モード:
Home
- Emacsモード:
Home
、Ctrl+a
- Vi 挿入モード:
Home
- Vi コマンド モード:
<Home>
EndOfLine
入力に複数の行がある場合は、現在の行の末尾に移動するか、既に行の末尾にある場合は、入力の末尾に移動します。 入力に単一の行がある場合は、入力の末尾に移動します。
- Windows モード:
End
- Emacsモード:
End
、Ctrl+e
- Vi 挿入モード:
End
ForwardChar
カーソルを 1 文字右に移動します。 これにより、カーソルが複数行入力の次の行に移動する場合があります。
- Windows モード:
RightArrow
- Emacsモード:
RightArrow
、Ctrl+f
ForwardWord
カーソルを現在の単語の末尾に移動するか、単語間の場合は次の単語の末尾に移動します。 単語の境界は、構成可能な文字セットによって定義されます。
- Emacsモード:
Alt+f
、Escape,f
単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。
GotoBrace
一致する中かっこ、かっこ、または角かっこに移動します。
- Windows モード:
Ctrl+]
- Vi 挿入モード:
Ctrl+]
- Vi コマンド モード:
<Ctrl+]>
GotoColumn
arg で示される列に移動します。
- Vi コマンド モード:
<|>
GotoFirstNonBlankOfLine
行の最初の空白以外の文字にカーソルを移動します。
- Viコマンドモード:
<^>
、<_>
MoveToEndOfLine
カーソルを入力の末尾に移動します。
- Viコマンドモード:
<End>
、<$>
MoveToFirstLine
複数行のコマンドの最初の行に移動します。
- Vi コマンド モード:
<g,g>
MoveToLastLine
複数行のコマンドの最後の行に移動します。
- Vi コマンド モード:
<G>
NextLine
カーソルを次の行に移動します。
- 関数がバインドされていない。
NextWord
カーソルを次の単語の先頭に移動します。 単語の境界は、構成可能な文字セットによって定義されます。
- Windows モード:
Ctrl+RightArrow
- Vi 挿入モード:
Ctrl+RightArrow
- Vi コマンド モード:
<Ctrl+RightArrow>
単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。
NextWordEnd
カーソルを現在の単語の末尾に移動するか、単語間の場合は次の単語の末尾に移動します。 単語の境界は、構成可能な文字セットによって定義されます。
- Vi コマンド モード:
<e>
単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。
PreviousLine
カーソルを前の行に移動します。
- 関数がバインドされていない。
ShellBackwardWord
カーソルを現在の単語の先頭に戻すか、単語間の場合は前の単語の先頭に戻します。 Word の境界は、PowerShell トークンによって定義されます。
- 関数がバインドされていない。
ShellForwardWord
カーソルを次の単語の先頭に移動します。 Word の境界は、PowerShell トークンによって定義されます。
- 関数がバインドされていない。
ShellNextWord
カーソルを現在の単語の末尾に移動するか、単語間の場合は次の単語の末尾に移動します。 Word の境界は、PowerShell トークンによって定義されます。
- 関数がバインドされていない。
ViBackwardChar
Vi 編集モードでカーソルを 1 文字左に移動します。 これにより、カーソルが複数行入力の前の行に移動する場合があります。
- Vi 挿入モード:
LeftArrow
- Viコマンドモード:
<LeftArrow>
、<Backspace>
、<h>
ViBackwardWord
カーソルを現在の単語の先頭に戻すか、単語間の場合は前の単語の先頭に戻します。 単語の境界は、構成可能な文字セットによって定義されます。
- Vi コマンド モード:
<b>
単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。
ViEndOfGlob
空白で区切って、カーソルをこの単語の末尾に移動します。
- Vi コマンド モード:
<E>
ViEndOfPreviousGlob
単語区切り記号として空白のみを使用して、前の単語の末尾に移動します。
- 関数がバインドされていない。
ViForwardChar
Vi 編集モードでカーソルを 1 文字右に移動します。 これにより、カーソルが複数行入力の次の行に移動する場合があります。
- Vi 挿入モード:
RightArrow
- Viコマンドモード:
<RightArrow>
、<Spacebar>
、<l>
ViGotoBrace
GotoBrace に似ていますが、トークン ベースではなく文字ベースです。
- Vi コマンド モード:
<%>
ViNextGlob
単語区切り記号として空白のみを使用して、次の単語に移動します。
- Vi コマンド モード:
<W>
ViNextWord
カーソルを次の単語の先頭に移動します。 単語の境界は、構成可能な文字セットによって定義されます。
- Vi コマンド モード:
<w>
単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。
履歴関数
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 履歴の 'previous' 項目に置き換えます。
- Windows モード:
F8
HistorySearchForward
現在の入力を、開始と入力とカーソルの間の文字と一致する PSReadLine 履歴の 'next' 項目に置き換えます。
- Windows モード:
Shift+F8
NextHistory
現在の入力を PSReadLine 履歴の 'next' 項目に置き換えます。
- Windows モード:
DownArrow
- Emacsモード:
DownArrow
、Ctrl+n
- Vi 挿入モード:
DownArrow
- Viコマンドモード:
<DownArrow>
、<j>
、<+>
PreviousHistory
現在の入力を PSReadLine 履歴の 'previous' 項目に置き換えます。
- 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>
キーを押すと、digit-argument 値が 10 に設定されます。 次に、#
キーを押すと、入力行に 10 #
文字 (##########
) が送信されます。
同様に、<Delete>
や Left-Arrow
などの他の操作でも使用できます。
- Windows モード:
Alt+0
,Alt+1
,Alt+2
,Alt+3
,Alt+4
,Alt+5
,Alt+6
,Alt+7
,Alt+8
,Alt+9
,Alt+-
- Emacsモード:
Alt+0
、Alt+1
、Alt+2
、Alt+3
、Alt+4
、Alt+5
、Alt+6
、Alt+7
、Alt+8
、Alt+9
、Alt+-
- Viコマンドモード:
<0>
、<1>
、<2>
、<3>
、<4>
、<5>
、<6>
、<7>
、<8>
、<9>
InvokePrompt
現在のプロンプトを消去し、プロンプト関数を呼び出してプロンプトを再表示します。 状態を変更するカスタム キー ハンドラーに便利です。 たとえば、現在のディレクトリを変更します。
- 関数がバインドされていない。
ScrollDisplayDown
ディスプレイを 1 画面下にスクロールします。
- Windows モード:
PageDown
- Emacs モード:
PageDown
ScrollDisplayDownLine
表示を 1 行下にスクロールします。
- Windows モード:
Ctrl+PageDown
- Emacs モード:
Ctrl+PageDown
ScrollDisplayToCursor
ディスプレイをカーソルまでスクロールします。
- Emacs モード:
Ctrl+End
ScrollDisplayTop
ディスプレイを一番上までスクロールします。
- Emacs モード:
Ctrl+Home
ScrollDisplayUp
ディスプレイを 1 画面上にスクロールします。
- Windows モード:
PageUp
- Emacs モード:
PageUp
ScrollDisplayUpLine
ディスプレイを 1 行上にスクロールします。
- Windows モード:
Ctrl+PageUp
- Emacs モード:
Ctrl+PageUp
ShowCommandHelp
コマンドレットの完全なヘルプのビューを提供します。 カーソルが完全に展開されたパラメーターの末尾にある場合、<F1>
キーを押すと、そのパラメーターの位置にヘルプの表示が配置されます。
このヘルプは、Microsoft.PowerShell.Pagerのページャー
- 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のコードの1つで他の関数に渡す新しい桁の引数を開始します。
- 関数がバインドされていない。
ViEditVisually
$env:EDITOR
または $env:VISUAL
で指定されたテキスト エディターでコマンド ラインを編集します。
- 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
SelectAll
行全体を選択します。
- 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)
これら 2 つの関数は、入力バッファーの現在の状態に関する有用な情報を取得します。 1 つ目は、単純なケースでより一般的に使用されます。 2 つ目は、バインディングが Ast でより高度な処理を行っている場合に使用されます。
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(bool includeBound, bool includeUnbound)
IEnumerable[Microsoft.PowerShell.KeyHandler]
GetKeyHandlers(string[] Chord)
これら 2 つの関数は、Get-PSReadLineKeyHandler
によって使用されます。 1 つ目は、すべてのキー バインドを取得するために使用されます。 2 つ目は、特定のキー バインドを取得するために使用されます。
Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()
この関数は Get-PSReadLineOption で使用され、カスタム キー バインドではあまり役に立たない可能性があります。
void GetSelectionState([ref] int start, [ref] int length)
コマンド ラインで選択されていない場合、関数は start と 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)
入力を置き換えます。 この操作では、元に戻す/やり直しをサポートしています。 これは、元に戻すための 1 つのアクションとして扱われるため、Delete の後に Insert が続くよりも優先されます。
void SetCursorPosition(int cursor)
指定したオフセットにカーソルを移動します。 元に戻す場合、カーソルの移動は追跡されません。
void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)
この関数は、コマンドレット 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 が使用中の場合、
ReadKey()
がタイムアウトすると (300 ミリ秒で入力しない) OnIdle イベントが発生します。 ユーザーがコマンド ラインの編集中にイベントを通知できます。たとえば、ユーザーが使用するパラメーターを決定するためのヘルプを読んでいる場合などです。PSReadLine 2.2.0-beta4 以降では、OnIdle 動作が変更され、
ReadKey()
タイムアウトがあり、現在の編集バッファーが空の場合にのみイベントが通知されます。