次の方法で共有


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 モード: BackspaceCtrl+h
  • Emacs モード: BackspaceCtrl+BackspaceCtrl+h
  • Vi 挿入モード: Backspace
  • Vi コマンド モード: <X><d,h>

BackwardDeleteInput

BackwardKillInput と同様に、 - 入力の先頭までの位置からテキストを削除しますが、削除されたテキストは kill リングに配置されません。

  • Windows モード: Ctrl+Home
  • Vi 挿入モード: Ctrl+uCtrl+Home
  • Vi コマンド モード: <Ctrl+u><Ctrl+Home>

BackwardDeleteLine

BackwardKillLine と同様に- 行の先頭までの位置からテキストを削除しますが、削除されたテキストはキル リングに配置されません。

  • Vi コマンド モード: <d,0>

BackwardDeleteWord

前の単語を削除します。

  • Vi コマンド モード: <Ctrl+w><d,b>

BackwardKillInput

入力の先頭からカーソルまでのテキストをクリアします。 クリアされたテキストはキルリングに配置されます。

  • Emacs モード: Ctrl+uCtrl+x,Backspace

BackwardKillLine

現在の論理行の先頭からカーソルまでのテキストをクリアします。 クリアされたテキストはキルリングに配置されます。

  • 関数がバインドされていない。

BackwardKillWord

現在の単語の先頭からカーソルへの入力をクリアします。 カーソルが単語間にある場合、入力は前の単語の先頭からカーソルまで消去されます。 クリアされたテキストはキルリングに配置されます。

  • Windows モード: Ctrl+BackspaceCtrl+w
  • Emacs モード: Alt+BackspaceEscape,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+cEscape,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+lEscape,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+dCtrl+Delete
  • Emacs モード: Alt+dEscape,d
  • Vi 挿入モード: Ctrl+Delete
  • Vi コマンド モード: <Ctrl+Delete>

貼り付け

システム クリップボードからテキストを貼り付けます。

  • Windows モード: Ctrl+vShift+Insert
  • Vi 挿入モード: Ctrl+v
  • Vi コマンド モード: <Ctrl+v>

重要

Paste 関数を使用すると、クリップボード バッファーの内容全体が PSReadLine の入力バッファーに貼り付けられます。 その後、入力バッファーが PowerShell パーサーに渡されます。 コンソール アプリケーションの right-click 貼り付けメソッドを使用して貼り付けた入力は、一度に 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+rEscape,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+uEscape,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+yEscape,Ctrl+y

YankPop

前の操作が Yank または YankPop の場合は、以前にヤンクされたテキストを、キル リングから次に強制終了されたテキストに置き換えます。

  • Emacs モード: Alt+yEscape,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

カーソルを 1 文字左に移動します。 これにより、カーソルが複数行入力の前の行に移動する場合があります。

  • Windows モード: LeftArrow
  • Emacs モード: LeftArrowCtrl+b

BackwardWord

カーソルを現在の単語の先頭に戻すか、単語間の場合は前の単語の先頭に戻します。 単語の境界は、構成可能な文字セットによって定義されます。

  • Windows モード: Ctrl+LeftArrow
  • Emacs モード: Alt+bEscape,b
  • Vi 挿入モード: Ctrl+LeftArrow
  • Vi コマンド モード: <Ctrl+LeftArrow>

単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。 WordDelimiters プロパティを表示または変更するには、「Get-PSReadLineOption および Set-PSReadLineOptionを参照してください。

BeginningOfLine

入力に複数の行がある場合は、現在の行の先頭に移動するか、既に行の先頭にある場合は、入力の先頭に移動します。 入力に単一の行がある場合は、入力の先頭に移動します。

  • Windows モード: Home
  • Emacs モード: HomeCtrl+a
  • Vi 挿入モード: Home
  • Vi コマンド モード: <Home>

EndOfLine

入力に複数の行がある場合は、現在の行の末尾に移動するか、既に行の末尾にある場合は、入力の末尾に移動します。 入力に単一の行がある場合は、入力の末尾に移動します。

  • Windows モード: End
  • Emacs モード: EndCtrl+e
  • Vi 挿入モード: End

ForwardChar

カーソルを 1 文字右に移動します。 これにより、カーソルが複数行入力の次の行に移動する場合があります。

  • Windows モード: RightArrow
  • Emacs モード: RightArrowCtrl+f

ForwardWord

カーソルを現在の単語の末尾に移動するか、単語間の場合は次の単語の末尾に移動します。 単語の境界は、構成可能な文字セットによって定義されます。

  • Emacs モード: Alt+fEscape,f

単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。 WordDelimiters プロパティを表示または変更するには、「Get-PSReadLineOption および Set-PSReadLineOptionを参照してください。

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 プロパティで構成されます。 WordDelimiters プロパティを表示または変更するには、「Get-PSReadLineOption および Set-PSReadLineOptionを参照してください。

NextWordEnd

カーソルを現在の単語の末尾に移動するか、単語間の場合は次の単語の末尾に移動します。 単語の境界は、構成可能な文字セットによって定義されます。

  • Vi コマンド モード: <e>

単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。 WordDelimiters プロパティを表示または変更するには、「Get-PSReadLineOption および Set-PSReadLineOptionを参照してください。

PreviousLine

カーソルを前の行に移動します。

  • 関数がバインドされていない。

ShellBackwardWord

カーソルを現在の単語の先頭に戻すか、単語間の場合は前の単語の先頭に戻します。 Word の境界は、PowerShell トークンによって定義されます。

  • 関数がバインドされていない。

ShellForwardWord

カーソルを次の単語の先頭に移動します。 Word の境界は、PowerShell トークンによって定義されます。

  • 関数がバインドされていない。

ShellNextWord

カーソルを現在の単語の末尾に移動するか、単語間の場合は次の単語の末尾に移動します。 Word の境界は、PowerShell トークンによって定義されます。

  • 関数がバインドされていない。

ViBackwardChar

Vi 編集モードでカーソルを 1 文字左に移動します。 これにより、カーソルが複数行入力の前の行に移動する場合があります。

  • Vi 挿入モード: LeftArrow
  • Vi コマンド モード: <LeftArrow><Backspace><h>

ViBackwardWord

カーソルを現在の単語の先頭に戻すか、単語間の場合は前の単語の先頭に戻します。 単語の境界は、構成可能な文字セットによって定義されます。

  • Vi コマンド モード: <b>

単語の境界を定義する文字は、PSConsoleReadLineOptions オブジェクトの WordDelimiters プロパティで構成されます。 WordDelimiters プロパティを表示または変更するには、「Get-PSReadLineOption および Set-PSReadLineOptionを参照してください。

ViEndOfGlob

空白で区切って、カーソルをこの単語の末尾に移動します。

  • Vi コマンド モード: <E>

ViEndOfPreviousGlob

単語区切り記号として空白のみを使用して、前の単語の末尾に移動します。

  • 関数がバインドされていない。

ViForwardChar

Vi 編集モードでカーソルを 1 文字右に移動します。 これにより、カーソルが複数行入力の次の行に移動する場合があります。

  • Vi 挿入モード: RightArrow
  • Vi コマンド モード: <RightArrow><Spacebar><l>

ViGotoBrace

GotoBrace に似ていますが、トークン ベースではなく文字ベースです。

  • Vi コマンド モード: <%>

ViNextGlob

単語区切り記号として空白のみを使用して、次の単語に移動します。

  • Vi コマンド モード: <W>

ViNextWord

カーソルを次の単語の先頭に移動します。 単語の境界は、構成可能な文字セットによって定義されます。

  • 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 履歴の 'previous' 項目に置き換えます。

  • Windows モード: F8

HistorySearchForward

現在の入力を、開始と入力とカーソルの間の文字と一致する PSReadLine 履歴の 'next' 項目に置き換えます。

  • Windows モード: Shift+F8

NextHistory

現在の入力を PSReadLine 履歴の 'next' 項目に置き換えます。

  • Windows モード: DownArrow
  • Emacs モード: DownArrowCtrl+n
  • Vi 挿入モード: DownArrow
  • Vi コマンド モード: <DownArrow><j><+>

PreviousHistory

現在の入力を PSReadLine 履歴の 'previous' 項目に置き換えます。

  • Windows モード: UpArrow
  • Emacs モード: UpArrowCtrl+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+0Alt+1Alt+2Alt+3Alt+4Alt+5Alt+6Alt+7Alt+8Alt+9Alt+-
  • Emacs モード: Alt+0Alt+1Alt+2Alt+3Alt+4Alt+5Alt+6Alt+7Alt+8Alt+9Alt+-
  • 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 ターミナルなどの最新のターミナル アプリケーションでのみ機能します。

  • 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

予測のビュー スタイルを InlineViewListViewに切り替えます。

  • 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 が使用されている場合、 OnIdle イベントは、 ReadKey() がタイムアウトしたときに発生します (300 ミリ秒で入力しません)。 ユーザーがコマンド ラインの編集中にイベントを通知できます。たとえば、ユーザーが使用するパラメーターを決定するためのヘルプを読んでいる場合などです。

    PSReadLine 2.2.0-beta4 以降では、 OnIdle 動作が変更され、 ReadKey() タイムアウトがあり、現在の編集バッファーが空の場合にのみイベントが通知されます。

参照