powershell Tab補完、Ctrl+Space候補表示
今までpowershell ISEばかりを使用してきた。ISEはコマンドやコマンドの持つオプションを綺麗に表示してくれるので分かりやすかった。powershellの純粋なターミナルの方でも補完機能や候補表示機能がないのかを調べてみた。
目次
本文
1. Tab補完
例えば、以下のように
> Get-Ch <tab押下> ↓ > Get-ChildItem
候補が複数ある場合は、順々に候補を表示する(ここがダサい)。
> Get-v <tab押下> ↓ > Get-Variable <tab押下> ↓ > Get-Verb <tab押下> ↓ > Get-VirtualDisk <tab押下> ・・・
2. Ctrl+Space 候補表示
2.1 コマンド
任意の所まで入力して「Ctrl+Space」で候補を表示してくれる。便利なことに簡単な説明も表示される。
2.2 オプション
Ctrl+Spaceはオプションに対しても使える。-まで入力してCtrl+Spaceすると、候補を表示してくれる。
3. 操作全般の設定を確認するコマンドレット:Get-PSReadLineKeyHandler
設定を確認することもできるようだ。
PS > Get-PSReadLineKeyHandler 基本的な編集機能 ======== Key Function Description --- -------- ----------- Enter AcceptLine 入力を受け入れるか、入力に終了トークンがない場合は次の行に移動します。 Shift+Enter AddLine 入力を実行せずにカーソルを次の行に移動します Backspace BackwardDeleteChar カーソルの前にある文字を削除します Ctrl+h BackwardDeleteChar カーソルの前にある文字を削除します Ctrl+Home BackwardDeleteLine カーソル位置から行頭までのテキストを削除します Ctrl+Backspace BackwardKillWord 現在の単語または前の単語の先頭からカーソル位置までのテキストをキル リングに移動しま す Ctrl+C Copy 選択された領域をシステムのクリップボードにコピーします。領域が選択されていない場合 は、行全体をコピーします。 Ctrl+c CopyOrCancelLine 選択されたテキストをクリップボードにコピーします。テキストが選択されていない場合は 、CancelLine によって行の編集を取り消します。 Ctrl+x Cut 選択された領域を削除し、削除したテキストをシステムのクリップボードに配置します Delete DeleteChar カーソルの下にある文字を削除します Ctrl+End ForwardDeleteLine カーソル位置から行末までのテキストを削除します Ctrl+Enter InsertLineAbove 入力を実行せず、現在の行の上に新しい空白行を挿入します Shift+Ctrl+Enter InsertLineBelow 入力を実行せず、現在の行の下に新しい空白行を挿入します Ctrl+Delete KillWord カーソル位置から現在の単語または次の単語の末尾までのテキストをキル リングに移動しま す Ctrl+v Paste システムのクリップボードからテキストを貼り付けます Shift+Insert Paste システムのクリップボードからテキストを貼り付けます Ctrl+y Redo 元に戻した操作をやり直します Escape RevertLine すべての編集を元に戻します (履歴からインポートされた行以外の行を消去します) Ctrl+z Undo 前の編集を元に戻します Alt+. YankLastArg 最後の引数のテキストを入力にコピーします カーソル移動の機能 ========= Key Function Description --- -------- ----------- LeftArrow BackwardChar カーソルを 1 文字前に戻します Ctrl+LeftArrow BackwardWord カーソルを現在の単語または前の単語の先頭に移動します Home BeginningOfLine カーソルを行頭に移動します End EndOfLine カーソルを行末に移動します RightArrow ForwardChar カーソルを 1 文字先に進めます Ctrl+] GotoBrace 対応するかっこに移動します Ctrl+RightArrow NextWord カーソルを次の単語の先頭に移動します 履歴機能 Key Function Description --- -------- ----------- Alt+F7 ClearHistory コマンド ライン履歴 (PowerShell の履歴ではなく) からすべての項目を削除します Ctrl+s ForwardSearchHistory 履歴を対話形式で順方向に検索します F8 HistorySearchBackward 履歴を逆方向に検索して、現在の入力で始まる項目を見つけます。入力が空の場合は、PreviousH istory と同じように動作します Shift+F8 HistorySearchForward 履歴を順方向に検索して、現在の入力で始まる項目を見つけます。入力が空の場合は、NextHisto ry と同じように動作します DownArrow NextHistory 履歴の次の項目で入力を置き換えます UpArrow PreviousHistory 履歴の前の項目で入力を置き換えます Ctrl+r ReverseSearchHistory 履歴を対話形式で逆方向に検索します コンプリート機能 ======== Key Function Description --- -------- ----------- Ctrl+Space MenuComplete 入力候補が 1 つだけ存在する場合は、その候補で入力を補完します。それ以外の場合は、入力候 補のメニューから項目を選択して入力を補完します。 Tab TabCompleteNext 次の入力候補を使用して入力を補完します Shift+Tab TabCompletePrevious 前の入力候補を使用して入力を補完します その他の機能 ====== Key Function Description --- -------- ----------- Ctrl+l ClearScreen 画面をクリアし、画面の先頭に現在の行を再描画します Alt+0 DigitArgument 他の関数への数値引数を開始または累算します Alt+1 DigitArgument 他の関数への数値引数を開始または累算します Alt+2 DigitArgument 他の関数への数値引数を開始または累算します Alt+3 DigitArgument 他の関数への数値引数を開始または累算します Alt+4 DigitArgument 他の関数への数値引数を開始または累算します Alt+5 DigitArgument 他の関数への数値引数を開始または累算します Alt+6 DigitArgument 他の関数への数値引数を開始または累算します Alt+7 DigitArgument 他の関数への数値引数を開始または累算します Alt+8 DigitArgument 他の関数への数値引数を開始または累算します Alt+9 DigitArgument 他の関数への数値引数を開始または累算します Alt+- DigitArgument 他の関数への数値引数を開始または累算します PageDown ScrollDisplayDown 表示を 1 画面分下へスクロールします Ctrl+PageDown ScrollDisplayDownLine 表示を 1 行分下へスクロールします PageUp ScrollDisplayUp 表示を 1 画面分上へスクロールします Ctrl+PageUp ScrollDisplayUpLine 表示を 1 行分上へスクロールします Ctrl+Alt+? ShowKeyBindings すべてのキー バインドを表示します Alt+? WhatIsKey 次に入力されたコードのキー バインドを表示します 選択機能 Key Function Description --- -------- ----------- Ctrl+a SelectAll 行全体を選択します。カーソルは行末に移動します Shift+LeftArrow SelectBackwardChar 現在の選択範囲を調整して、前の文字を選択範囲に含めます Shift+Home SelectBackwardsLine 現在の選択範囲を調整して、カーソル位置から行末までを選択範囲に含めます Shift+Ctrl+LeftArrow SelectBackwardWord 現在の選択範囲を調整して、前の単語を選択範囲に含めます Shift+RightArrow SelectForwardChar 現在の選択範囲を調整して、次の文字を選択範囲に含めます Shift+End SelectLine 現在の選択範囲を調整して、カーソル位置から行頭までを選択範囲に含めます Shift+Ctrl+RightArrow SelectNextWord 現在の選択範囲を調整して、次の単語を選択範囲に含めます 検索機能 Key Function Description --- -------- ----------- F3 CharacterSearch 1 文字を読み取り、その文字が次に出現する位置にカーソルを移動します Shift+F3 CharacterSearchBackward 1 文字を読み取り、その文字が前に出現する位置にカーソルを移動します
参考
PowerShellのTab補完をbashのようにする - minus9d's diary
Powershellで分からないコマンドはPowershellで調べる - Qiita
バージョン情報
> $PSVersionTable Name Value ---- ----- PSVersion 5.1.19041.1023