共用方式為


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 - 會從輸入的點刪除文字,但不會將已刪除的文字放在終止環中。

  • 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> 命令可以加上數值自變數來指定絕對行號,以及目前的行號,構成要刪除的行範圍。 如果未指定,則 numeric 自變數預設為 1,這會參考多行緩衝區中的第一個邏輯行。

從多行中刪除的實際行數會計算為目前邏輯行號與指定數值自變數之間的差異,因此可以是負數。 因此,方法 名稱的相對 部分。

  • Vi 命令模式: <d,g,g>

DeleteToEnd

刪除到行尾。

  • Vi 命令模式: <D><d,$>

DeleteWord

刪除下一個字。

  • Vi 命令模式: <d,w>

DowncaseWord

在 PSReadLine 2.3.0 中新增

將下一個字轉換成小寫。

  • Emacs 模式: Alt+lEscape,l

ForwardDeleteInput

如同 KillLine - 會從輸入的點到結尾刪除文字,但不會將已刪除的文字放在終止環中。

  • 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剖析器。 使用主控台應用程式的 按下滑鼠右鍵 貼上方法貼上的輸入會一次複製到輸入緩衝區一個字元。 複製換行符時,輸入緩衝區會傳遞至剖析器。 因此,輸入會一次剖析一行。 貼上方法之間的差異會導致不同的執行行為。

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+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

取代游標左邊的行,以及行開頭的一個字元。

  • 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

游標左邊的洋克字元(s)。

  • Vi 命令模式: <y,h>

ViYankLine

擷取整個緩衝區。

  • Vi 命令模式: <y,y>

ViYankNextGlob

從游標到下一個 WORD 開頭的洋克。

  • Vi 命令模式: <y,W>

ViYankNextWord

在游標後面擷取單字。

  • Vi 命令模式: <y,w>

ViYankPercent

洋克到/從相符的大括弧。

  • Vi 命令模式: <y,%>

ViYankPreviousGlob

從 WORD(s) 開頭到游標的洋克。

  • 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+yEscape,Ctrl+y

洋克波普

如果先前的作業是 Yank 或 YankPop,請將先前的已擷取文字取代為 kill-ring 的下一個已終止文字。

  • Emacs 模式: Alt+yEscape,y

完成函式

完成

嘗試對游標周圍的文字執行完成。 如果有多個可能的完成,則會使用最長的明確前置詞來完成。 如果嘗試完成最長的明確完成,則會顯示可能的完成清單。

  • Emacs 模式: Tab

嘗試對游標周圍的文字執行完成。 如果有多個可能的完成,則會使用最長的明確前置詞來完成。 如果嘗試完成最長的明確完成,則會顯示可能的完成清單。

  • Windows 模式: Ctrl+@Ctrl+Spacebar
  • Emacs 模式: Ctrl+Spacebar

可能的完成

顯示可能的完成清單。

  • 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 模式: LeftArrowCtrl+b

BackwardWord

將游標移回目前單字的開頭,或如果在單字之間,則為上一個單字的開頭。 文字界限是由一組可設定的字元所定義。

  • Windows 模式: Ctrl+LeftArrow
  • Emacs 模式: Alt+bEscape,b
  • Vi 插入模式: Ctrl+LeftArrow
  • Vi 命令模式: <Ctrl+LeftArrow>

定義字邊界的字元是在 PSConsoleReadLineOptions 物件的 WordDelimiters 屬性設定。 若要檢視或變更 WordDelimiters 屬性,請參閱 Get-PSReadLineOptionSet-PSReadLineOption

BeginningOfLine

如果輸入有多行,請移至目前行的開頭,或者如果已經在行的開頭,請移至輸入的開頭。 如果輸入有單行,請移至輸入的開頭。

  • Windows 模式: Home
  • Emacs 模式: HomeCtrl+a
  • Vi 插入模式: Home
  • Vi 命令模式: <Home>

EndOfLine

如果輸入有多行,請移至目前行的結尾,或者如果已經在該行結尾,請移至輸入的結尾。 如果輸入有單行,請移至輸入的結尾。

  • Windows 模式: End
  • Emacs 模式: EndCtrl+e
  • Vi 插入模式: End

ForwardChar

將游標向右移動一個字元。 這可能會將游標移至多行輸入的下一行。

  • Windows 模式: RightArrow
  • Emacs 模式: RightArrowCtrl+f

ForwardWord

將游標向前移至目前單字的結尾,或在單字之間移動至下一個單字的結尾。 文字界限是由一組可設定的字元所定義。

  • Emacs 模式: Alt+fEscape,f

定義字邊界的字元是在 PSConsoleReadLineOptions 物件的 WordDelimiters 屬性設定。 若要檢視或變更 WordDelimiters 屬性,請參閱 Get-PSReadLineOptionSet-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-PSReadLineOptionSet-PSReadLineOption

NextWordEnd

將游標向前移至目前單字的結尾,或在單字之間移動至下一個單字的結尾。 文字界限是由一組可設定的字元所定義。

  • Vi 命令模式: <e>

定義字邊界的字元是在 PSConsoleReadLineOptions 物件的 WordDelimiters 屬性設定。 若要檢視或變更 WordDelimiters 屬性,請參閱 Get-PSReadLineOptionSet-PSReadLineOption

PreviousLine

將游標移至上一行。

  • 函式未系結。

ShellBackwardWord

將游標移回目前單字的開頭,或如果在單字之間,則為上一個單字的開頭。 Word 界限是由 PowerShell 令牌所定義。

  • 函式未系結。

ShellForwardWord

將游標向前移動至下一個字的開頭。 Word 界限是由 PowerShell 令牌所定義。

  • 函式未系結。

ShellNextWord

將游標向前移至目前單字的結尾,或在單字之間移動至下一個單字的結尾。 Word 界限是由 PowerShell 令牌所定義。

  • 函式未系結。

ViBackwardChar

以 Vi 編輯模式將游標移至左邊的一個字元。 這可能會將游標移至前一行多行輸入。

  • Vi 插入模式: LeftArrow
  • Vi 命令模式:<LeftArrow>、、 <Backspace><h>

ViBackwardWord

將游標移回目前單字的開頭,或如果在單字之間,則為上一個單字的開頭。 文字界限是由一組可設定的字元所定義。

  • 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

將游標向前移動至下一個字的開頭。 文字界限是由一組可設定的字元所定義。

  • 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 歷程記錄中的 『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

啟動新的數位自變數,以傳遞至其他函式。 您可以使用這個 作為下一個由keypress叫用的函式乘數。 例如,按下 會將 <Alt+1> <Alt+0> digit-argument 值設定為 10。 然後,按下 # 按鍵會將 10 # 個字元 (##########) 傳送至輸入行。 同樣地,您可以將此專案與其他作業搭配使用,例如 <Delete>Left-Arrow

  • Windows 模式:Alt+0Alt+1Alt+2Alt+3Alt+6Alt+4Alt+5Alt+7、、 Alt+8Alt+9Alt+-
  • Emacs 模式:Alt+0Alt+1Alt+2Alt+4Alt+6Alt+5Alt+3、、、Alt+7、、 Alt+8Alt+9Alt+-
  • Vi 命令模式:<0>、、<1><2><4><3>、、、、<5><7><8><6><9>

InvokePrompt

清除目前的提示,並呼叫 prompt 函式來重新顯示提示。 適用於變更狀態的自定義金鑰處理程式。 例如,變更目前的目錄。

  • 函式未系結。

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 的 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

在和 ListView之間InlineView切換用於預測的檢視樣式。

  • 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)

這兩個函式會擷取有關輸入緩衝區目前狀態的實用資訊。 第一個較常用於簡單案例。 如果您的系結使用 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() (未輸入 300 毫秒)。 當使用者在編輯命令行時,可能會發出訊號,例如,使用者正在閱讀協助來決定要使用的參數。

    從 PSReadLine 2.2.0-beta4 開始, OnIdle 行為已變更為只有在有 ReadKey() 逾時且目前的編輯緩衝區空白時才會發出訊號。

另請參閱