Freigeben über


Über_PSReadLine

Kurzbeschreibung

PSReadLine bietet eine verbesserte Befehlszeilenbearbeitung in der PowerShell-Konsole.

Lange Beschreibung

PSReadLine 2.0 bietet eine leistungsstarke Befehlszeilenbearbeitung für die PowerShell-Konsole. Es bietet Folgendes:

  • Syntaxfarbe der Befehlszeile
  • Ein visueller Hinweis auf Syntaxfehler
  • Eine bessere mehrzeilige Erfahrung (sowohl Bearbeiten als auch Verlauf)
  • Anpassbare Tastenbindungen
  • Cmd- und Emacs-Modi
  • Viele Konfigurationsoptionen
  • Abschluss der Bash-Formatvorlage (optional im Cmd-Modus, Standard im Emacs-Modus)
  • Emacs reißen/töten Ring
  • PowerShell-Tokenbasierte "Wort"-Bewegung und -Löschung

PSReadLine erfordert PowerShell 3.0 oder höher. PSReadLine funktioniert mit Standardkonsolenhost, Visual Studio Code und Window Terminal. Es funktioniert nicht in PowerShell ISE.

PSReadLine 2.1.0 wird mit PowerShell 7.2 ausgeliefert und wird in allen unterstützten Versionen von PowerShell unterstützt. Es steht zur Installation über den PowerShell-Katalog zur Verfügung. Um PSReadLine 2.1.0 in einer unterstützten Version von PowerShell zu installieren, führen Sie den folgenden Befehl aus.

Install-Module -Name PSReadLine -RequiredVersion 2.1.0

Anmerkung

Ab PowerShell 7.0 überspringt PowerShell das automatische Laden von PSReadLine unter Windows, wenn ein Sprachausgabeprogramm erkannt wird. Derzeit funktioniert PSReadLine nicht gut mit den Bildschirmsprachausgaben. Das standardmäßige Rendering und die Formatierung von PowerShell 7.0 unter Windows funktioniert ordnungsgemäß. Sie können das Modul bei Bedarf manuell laden.

Die folgenden Funktionen sind in der Klasse Microsoft.PowerShell.PSConsoleReadLineverfügbar.

Grundlegende Bearbeitungsfunktionen

Abbrechen

Abbrechen der aktuellen Aktion, z. B. inkrementelle Verlaufssuche.

  • Emacs: <Ctrl+g>

AkzeptierenUndAbrufenWeiter

Versuchen Sie, die aktuelle Eingabe auszuführen. Wenn sie ausgeführt werden kann (z. B. AcceptLine), rufen Sie das nächste Element aus dem Verlauf zurück, wenn ReadLine das nächste Mal aufgerufen wird.

  • Emacs: <Ctrl+o>

AcceptLine (Akzeptieren)

Versuchen Sie, die aktuelle Eingabe auszuführen. Wenn die aktuelle Eingabe unvollständig ist (z. B. fehlende schließende Klammern, Klammern oder Anführungszeichen), wird die Fortsetzungsaufforderung in der nächsten Zeile angezeigt, und PSReadLine wartet auf die Bearbeitung der aktuellen Eingabe.

  • Befehl: <Enter>
  • Emacs: <Enter>
  • Vi Einfügemodus: <Enter>

Linie hinzufügen

Die Fortsetzungsaufforderung wird in der nächsten Zeile angezeigt, und PSReadLine wartet auf Tasten, um die aktuelle Eingabe zu bearbeiten. Dies ist nützlich, um mehrzeilige Eingaben als einzelner Befehl einzugeben, auch wenn eine einzelne Zeile die Eingabe selbst abgeschlossen ist.

  • Befehl: <Shift+Enter>
  • Emacs: <Shift+Enter>
  • Vi Einfügemodus: <Shift+Enter>
  • Vi-Befehlsmodus: <Shift+Enter>

BackwardDeleteChar

Löschen Sie das Zeichen vor dem Cursor.

  • Befehl: <Backspace>, <Ctrl+h>
  • Emacs: <Backspace>, <Ctrl+Backspace>, <Ctrl+h>
  • Vi Einfügemodus: <Backspace>
  • Vi-Befehlsmodus: <X>, <d,h>

RückwärtsLöschenZeile

Wie BackwardKillLine - löscht Text vom Punkt bis zum Anfang der Zeile, aber nicht den gelöschten Text im Kill-Ring.

  • Befehl: <Ctrl+Home>
  • Vi Einfügemodus: <Ctrl+u>, <Ctrl+Home>
  • Vi-Befehlsmodus: <Ctrl+u>, <Ctrl+Home>, <d,0>

RückwärtsLöschenWort

Löscht das vorherige Wort.

  • Vi-Befehlsmodus: <Ctrl+w>, <d,b>

RückwärtsKillLine

Löschen Sie die Eingabe vom Anfang der Eingabe bis zum Cursor. Der gelöschte Text wird im Kill-Ring platziert.

  • Emacs: <Ctrl+u>, <Ctrl+x,Backspace>

RückwärtsKillWord

Löschen Sie die Eingabe vom Anfang des aktuellen Worts zum Cursor. Wenn sich der Cursor zwischen Wörtern befindet, wird die Eingabe vom Anfang des vorherigen Worts bis zum Cursor gelöscht. Der gelöschte Text wird im Kill-Ring platziert.

  • Befehl: <Ctrl+Backspace>, <Ctrl+w>
  • Emacs: <Alt+Backspace>, <Escape,Backspace>
  • Vi Einfügemodus: <Ctrl+Backspace>
  • Vi-Befehlsmodus: <Ctrl+Backspace>

Stornieren

Brechen Sie die aktuelle Eingabe ab, lassen Sie die Eingabe auf dem Bildschirm zurück, kehren aber wieder zum Host zurück, sodass die Eingabeaufforderung erneut ausgewertet wird.

  • Vi Einfügemodus: <Ctrl+c>
  • Vi-Befehlsmodus: <Ctrl+c>

Kopieren

Kopieren Sie den ausgewählten Bereich in die Systemablage. Wenn kein Bereich ausgewählt ist, kopieren Sie die gesamte Zeile.

  • Befehl: <Ctrl+C>

CopyOrCancelLine

Wenn Text markiert ist, kopieren Sie sie in die Zwischenablage, andernfalls brechen Sie die Zeile ab.

  • Befehl: <Ctrl+c>
  • Emacs: <Ctrl+c>

Schneiden

Löschen Sie den ausgewählten Bereich, in dem gelöschter Text in der Systemablage platziert wird.

  • Befehl: <Ctrl+x>

DeleteChar

Löschen Sie das Zeichen unter dem Cursor.

  • Befehl: <Delete>
  • Emacs: <Delete>
  • Vi Einfügemodus: <Delete>
  • Vi-Befehlsmodus: <Delete>, <x>, <d,l>, <d,Spacebar>

DeleteCharOrExit

Löschen Sie das Zeichen unter dem Cursor, oder wenn die Zeile leer ist, beenden Sie den Vorgang.

  • Emacs: <Ctrl+d>

DeleteEndOfBuffer

Löscht am Ende des mehrstufigen Puffers.

  • Vi-Befehlsmodus: <d,G>

DeleteEndOfWord

Löschen bis zum Ende des Worts.

  • Vi-Befehlsmodus: <d,e>

DeleteLine (Löschen)

Löscht die aktuelle logische Zeile eines mehrzeiligen Puffers, wodurch rückgängig werden kann.

  • Vi-Befehlsmodus: <d,d>, <d,_>

VorherigeZeilen löschen

Löscht die vorherigen angeforderten logischen Zeilen und die aktuelle logische Zeile in einem mehrzeiligen Puffer.

  • Vi-Befehlsmodus: <d,k>

DeleteRelativeLines

Löscht vom Anfang des Puffers zur aktuellen logischen Zeile in einem mehrzeiligen Puffer.

Wie bei den meisten Vi-Befehlen kann der Befehl <d,g,g> mit einem numerischen Argument vorangestellt werden, das eine absolute Zeilenzahl angibt, die zusammen mit der aktuellen Zeilennummer einen Zu löschenden Zeilenbereich bilden. Wenn nicht angegeben, wird das numerische Argument standardmäßig auf 1 festgelegt, das sich auf die erste logische Zeile in einem mehrzeiligen Puffer bezieht.

Die tatsächliche Anzahl von Zeilen, die aus der mehrzeiligen Zeile gelöscht werden sollen, wird als Differenz zwischen der aktuellen logischen Zeilennummer und dem angegebenen numerischen Argument berechnet, was somit negativ sein kann. Daher relativer Teil des Methodennamens.

  • Vi-Befehlsmodus: <d,g,g>

LöschenNächsteZeilen

Löscht die aktuelle logische Zeile und die nächsten angeforderten logischen Zeilen in einem mehrzeiligen Puffer.

  • Vi-Befehlsmodus: <d,j>

DeleteLineToFirstChar

Löscht Text vom Cursor auf das erste nicht leere Zeichen der Zeile.

  • Vi-Befehlsmodus: <d,^>

DeleteToEnd

Am Ende der Zeile löschen.

  • Vi-Befehlsmodus: <D>, <d,$>

Wort löschen

Löschen Sie das nächste Wort.

  • Vi-Befehlsmodus: <d,w>

VorwärtsLöschenZeile

Wie ForwardKillLine - löscht Text vom Punkt bis zum Ende der Zeile, aber nicht den gelöschten Text im Kill-Ring.

  • Befehl: <Ctrl+End>
  • Vi Einfügemodus: <Ctrl+End>
  • Vi-Befehlsmodus: <Ctrl+End>

EinfügenLinieOben

Oberhalb der aktuellen Zeile wird unabhängig davon, wo sich der Cursor in der aktuellen Zeile befindet, eine neue leere Zeile erstellt. Der Cursor wird an den Anfang der neuen Zeile verschoben.

  • Befehl: <Ctrl+Enter>

EinfügenLinieUnten

Unterhalb der aktuellen Zeile wird unabhängig davon, wo sich der Cursor in der aktuellen Zeile befindet, eine neue leere Zeile erstellt. Der Cursor wird an den Anfang der neuen Zeile verschoben.

  • Befehl: <Shift+Ctrl+Enter>

InvertCase

Umkehren Sie die Groß-/Kleinschreibung des aktuellen Zeichens, und wechseln Sie zum nächsten Zeichen.

  • Vi-Befehlsmodus: <~>

KillLine

Löschen Sie die Eingabe vom Cursor bis zum Ende der Eingabe. Der gelöschte Text wird im Kill-Ring platziert.

  • Emacs: <Ctrl+k>

KillRegion

Beenden Sie den Text zwischen dem Cursor und der Markierung.

  • Funktion ist ungebunden.

KillWord

Löschen Sie die Eingabe vom Cursor bis zum Ende des aktuellen Worts. Wenn sich der Cursor zwischen Wörtern befindet, wird die Eingabe vom Cursor bis zum Ende des nächsten Worts gelöscht. Der gelöschte Text wird im Kill-Ring platziert.

  • Befehl: <Alt+d>, <Ctrl+Delete>
  • Emacs: <Alt+d>, <Escape,d>
  • Vi Einfügemodus: <Ctrl+Delete>
  • Vi-Befehlsmodus: <Ctrl+Delete>

Kleister

Fügen Sie Text aus der Systemablage ein.

  • Befehl: <Ctrl+v>, <Shift+Insert>
  • Vi Einfügemodus: <Ctrl+v>
  • Vi-Befehlsmodus: <Ctrl+v>

Wichtig

Bei Verwendung der funktion Einfügen wird der gesamte Inhalt des Zwischenablagepuffers in den Eingabepuffer von PSReadLine eingefügt. Der Eingabepuffer wird dann an den PowerShell-Parser übergeben. Eingaben, die mit der der Konsolenanwendung eingefügt werden, Einfügemethode wird jeweils ein Zeichen in den Eingabepuffer kopiert. Der Eingabepuffer wird an den Parser übergeben, wenn ein Neuzeilenzeichen kopiert wird. Daher wird die Eingabe jeweils eine Zeile analysiert. Der Unterschied zwischen Einfügemethoden führt zu unterschiedlichen Ausführungsverhalten.

Einfügen nach

Fügen Sie die Zwischenablage hinter dem Cursor ein, und bewegen Sie den Cursor an das Ende des eingefügten Texts.

  • Vi-Befehlsmodus: <p>

EinfügenVor

Fügen Sie die Zwischenablage vor dem Cursor ein, und bewegen Sie den Cursor an das Ende des eingefügten Texts.

  • Vi-Befehlsmodus: <P>

PrependAndAccept

Stellen Sie ein "#" voran, und akzeptieren Sie die Zeile.

  • Vi-Befehlsmodus: <#>

Noch einmal machen

Rückgängigmachen eines Rückgängigmachens.

  • Befehl: <Ctrl+y>
  • Vi Einfügemodus: <Ctrl+y>
  • Vi-Befehlsmodus: <Ctrl+y>

WiederholenLetzterBefehl

Wiederholen Sie die letzte Textänderung.

  • Vi-Befehlsmodus: <.>

RevertLine

Gibt alle Eingaben auf die aktuelle Eingabe zurück.

  • Befehl: <Escape>
  • Emacs: <Alt+r>, <Escape,r>

ShellBackwardKillWord

Löschen Sie die Eingabe vom Anfang des aktuellen Worts zum Cursor. Wenn sich der Cursor zwischen Wörtern befindet, wird die Eingabe vom Anfang des vorherigen Worts bis zum Cursor gelöscht. Der gelöschte Text wird im Kill-Ring platziert.

Funktion ist ungebunden.

ShellKillWord

Löschen Sie die Eingabe vom Cursor bis zum Ende des aktuellen Worts. Wenn sich der Cursor zwischen Wörtern befindet, wird die Eingabe vom Cursor bis zum Ende des nächsten Worts gelöscht. Der gelöschte Text wird im Kill-Ring platziert.

Funktion ist ungebunden.

Zeichen tauschen

Tauschen Sie das aktuelle Zeichen und das zeichen davor aus.

  • Emacs: <Ctrl+t>
  • Vi Einfügemodus: <Ctrl+t>
  • Vi-Befehlsmodus: <Ctrl+t>

Aufmachen

Rückgängigmachen einer vorherigen Bearbeitung.

  • Befehl: <Ctrl+z>
  • Emacs: <Ctrl+_>, <Ctrl+x,Ctrl+u>
  • Vi Einfügemodus: <Ctrl+z>
  • Vi-Befehlsmodus: <Ctrl+z>, <u>

Rückgängig machen

Alle vorherigen Bearbeitungen für Zeile rückgängigmachen.

  • Vi-Befehlsmodus: <U>

UnixWordRubout

Löschen Sie die Eingabe vom Anfang des aktuellen Worts zum Cursor. Wenn sich der Cursor zwischen Wörtern befindet, wird die Eingabe vom Anfang des vorherigen Worts bis zum Cursor gelöscht. Der gelöschte Text wird im Kill-Ring platziert.

  • Emacs: <Ctrl+w>

ValidateAndAcceptLine

Versuchen Sie, die aktuelle Eingabe auszuführen. Wenn die aktuelle Eingabe unvollständig ist (z. B. fehlende schließende Klammern, Klammern oder Anführungszeichen), wird die Fortsetzungsaufforderung in der nächsten Zeile angezeigt, und PSReadLine wartet auf die Bearbeitung der aktuellen Eingabe.

  • Emacs: <Ctrl+m>

ViAcceptLine

Akzeptieren Sie die Zeile, und wechseln Sie zum Einfügemodus.

  • Vi-Befehlsmodus: <Enter>

ViAcceptLineOrExit

Wie DeleteCharOrExit im Emacs-Modus, akzeptiert aber die Zeile, anstatt ein Zeichen zu löschen.

  • Vi Einfügemodus: <Ctrl+d>
  • Vi-Befehlsmodus: <Ctrl+d>

ViAppendLine

Unterhalb der aktuellen Zeile wird eine neue Zeile eingefügt.

  • Vi-Befehlsmodus: <o>

ViBackwardDeleteGlob

Löscht das vorherige Wort, wobei nur Leerzeichen als Worttrennzeichen verwendet werden.

  • Vi-Befehlsmodus: <d,B>

ViRückwärtsGlob

Verschiebt den Cursor zurück zum Anfang des vorherigen Worts, wobei nur Leerzeichen als Trennzeichen verwendet werden.

  • Vi-Befehlsmodus: <B>

ViDeleteBrace

Suchen Sie die übereinstimmende Klammer, Klammer oder eckige Klammer, und löschen Sie alle Inhalte, einschließlich der geschweiften Klammer.

  • Vi-Befehlsmodus: <d,%>

ViDeleteEndOfGlob

Löschen bis zum Ende des Worts.

  • Vi-Befehlsmodus: <d,E>

ViDeleteGlob

Löschen Sie den nächsten Glob (durch Trennzeichen getrennte Leerzeichen).

  • Vi-Befehlsmodus: <d,W>

ViDeleteToBeforeChar

Löscht bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <d,t>

ViDeleteToBeforeCharBackward

Löscht bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <d,T>

ViDeleteToChar

Löscht bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <d,f>

ViDeleteToCharBackward

Löscht rückwärts bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <d,F>

ViInsertAtBeginninging

Wechseln Sie zum Einfügemodus, und positionieren Sie den Cursor am Anfang der Zeile.

  • Vi-Befehlsmodus: <I>

ViInsertAtEnd

Wechseln Sie zum Einfügemodus, und positionieren Sie den Cursor am Ende der Zeile.

  • Vi-Befehlsmodus: <A>

ViInsertLine

Oberhalb der aktuellen Zeile wird eine neue Zeile eingefügt.

  • Vi-Befehlsmodus: <O>

ViInsertWithAppend

Anfügen von der aktuellen Zeilenposition.

  • Vi-Befehlsmodus: <a>

ViInsertWithDelete

Löschen Sie das aktuelle Zeichen, und wechseln Sie zum Einfügemodus.

  • Vi-Befehlsmodus: <s>

ViJoinLines

Verknüpft die aktuelle Zeile und die nächste Zeile.

  • Vi-Befehlsmodus: <J>

ViReplaceLine

Löschen Sie die gesamte Befehlszeile.

  • Vi-Befehlsmodus: <S>, <c,c>

ViReplaceToBeforeChar

Ersetzt bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <c,t>

ViReplaceToBeforeCharBackward

Ersetzt bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <c,T>

ViReplaceToChar

Löscht bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <c,f>

ViReplaceToCharBackward

Ersetzt bis zu einem gegebenen Zeichen.

  • Vi-Befehlsmodus: <c,F>

ViYankAnfangDerLinie

Yank vom Anfang des Puffers bis zum Cursor.

  • Vi-Befehlsmodus: <y,0>

ViYankEndOfGlob

Yank vom Cursor bis zum Ende der WORD(n).

  • Vi-Befehlsmodus: <y,E>

ViYankEndeVonWord

Yank vom Cursor bis zum Ende des Worts(n).

  • Vi-Befehlsmodus: <y,e>

ViYankLinks

Yank-Zeichen links vom Cursor.

  • Vi-Befehlsmodus: <y,h>

ViYankLine

Yank den gesamten Puffer.

  • Vi-Befehlsmodus: <y,y>

ViYankNächsterGlob

Yank vom Cursor bis zum Anfang der nächsten WORD(n).

  • Vi-Befehlsmodus: <y,W>

ViYankNächstesWort

Ziehen Sie das/die Wort(e) nach dem Cursor.

  • Vi-Befehlsmodus: <y,w>

ViYankPercent

Ziehen Sie zu/von der passenden Verstrebung.

  • Vi-Befehlsmodus: <y,%>

ViYankVorherigeGlob

Yank vom Anfang der WORD(n) bis zum Cursor.

  • Vi-Befehlsmodus: <y,B>

ViYankVorherigeWort

Ziehen Sie das/die Wort(e) vor den Cursor.

  • Vi-Befehlsmodus: <y,b>

ViYankRechts

Yank-Zeichen unter und rechts vom Cursor.

  • Vi-Befehlsmodus: <y,l>, <y,Spacebar>

ViYankToEndOfLine

Yank vom Cursor bis zum Ende des Puffers.

  • Vi-Befehlsmodus: <y,$>

ViYankToFirstChar

Yank vom ersten Nicht-Leerzeichen bis zum Cursor.

  • Vi-Befehlsmodus: <y,^>

Ami

Fügen Sie der Eingabe den zuletzt getöteten Text hinzu.

  • Emacs: <Ctrl+y>

YankLastArg

Yank das letzte Argument aus der vorherigen Verlaufszeile. Bei einem Argument verhält sich das erste Mal, wenn es aufgerufen wird, genau wie YankNthArg. Wenn sie mehrmals aufgerufen wird, durchläuft sie stattdessen den Verlauf, und arg legt die Richtung fest (negativ kehrt die Richtung um.)

  • Befehl: <Alt+.>
  • Emacs: <Alt+.>, <Alt+_>, <Escape,.>, <Escape,_>

YankNthArg

Yank das erste Argument (nach dem Befehl) aus der vorherigen Verlaufszeile. Mit einem Argument, yank the nth argument (starting from 0), if the argument is negative, start from the last argument.

  • Emacs: <Ctrl+Alt+y>, <Escape,Ctrl+y>

YankPop

Wenn der vorherige Vorgang Yank oder YankPop war, ersetzen Sie den zuvor yankierten Text durch den nächsten getöteten Text aus dem Kill-Ring.

  • Emacs: <Alt+y>, <Escape,y>

Cursorbewegungsfunktionen

RückwärtsChar

Bewegen Sie den Cursor um ein Zeichen nach links. Dies kann den Cursor in die vorherige Zeile mit mehrzeiliger Eingabe verschieben.

  • Befehl: <LeftArrow>
  • Emacs: <LeftArrow>, <Ctrl+b>
  • Vi Einfügemodus: <LeftArrow>
  • Vi-Befehlsmodus: <LeftArrow>, <Backspace>, <h>

RückwärtsWort

Bewegen Sie den Cursor zurück zum Anfang des aktuellen Worts oder zwischen Wörtern, dem Anfang des vorherigen Worts. Word-Grenzen werden durch einen konfigurierbaren Satz von Zeichen definiert.

  • Befehl: <Ctrl+LeftArrow>
  • Emacs: <Alt+b>, <Escape,b>
  • Vi Einfügemodus: <Ctrl+LeftArrow>
  • Vi-Befehlsmodus: <Ctrl+LeftArrow>

Die Zeichen, die Wortgrenzen definieren, werden in der WordDelimiters-eigenschaft des PSConsoleReadLineOptions--Objekts konfiguriert. Informationen zum Anzeigen oder Ändern der WordDelimiters--Eigenschaft finden Sie unter Get-PSReadLineOption und Set-PSReadLineOption-.

AnfangDerLinie

Wenn die Eingabe über mehrere Zeilen verfügt, wechseln Sie zum Anfang der aktuellen Zeile oder wenn sie bereits am Anfang der Zeile stehen, wechseln Sie zum Anfang der Eingabe. Wenn die Eingabe über eine einzelne Zeile verfügt, wechseln Sie zum Anfang der Eingabe.

  • Befehl: <Home>
  • Emacs: <Home>, <Ctrl+a>
  • Vi Einfügemodus: <Home>
  • Vi-Befehlsmodus: <Home>

EndeOfLine

Wenn die Eingabe mehrere Zeilen enthält, wechseln Sie zum Ende der aktuellen Zeile oder wenn sie sich bereits am Ende der Zeile befindet, wechseln Sie zum Ende der Eingabe. Wenn die Eingabe über eine einzelne Zeile verfügt, wechseln Sie zum Ende der Eingabe.

  • Befehl: <End>
  • Emacs: <End>, <Ctrl+e>
  • Vi Einfügemodus: <End>

ForwardChar (VorwärtsChar)

Bewegen Sie den Cursor um ein Zeichen nach rechts. Dadurch wird der Cursor möglicherweise in die nächste Zeile mit mehrzeiliger Eingabe verschoben.

  • Befehl: <RightArrow>
  • Emacs: <RightArrow>, <Ctrl+f>
  • Vi Einfügemodus: <RightArrow>
  • Vi-Befehlsmodus: <RightArrow>, <Space>, <l>

Vorwärtswort

Bewegen Sie den Cursor an das Ende des aktuellen Worts oder zwischen Wörtern bis zum Ende des nächsten Worts. Word-Grenzen werden durch einen konfigurierbaren Satz von Zeichen definiert.

  • Emacs: <Alt+f>, <Escape,f>

Die Zeichen, die Wortgrenzen definieren, werden in der WordDelimiters-eigenschaft des PSConsoleReadLineOptions--Objekts konfiguriert. Informationen zum Anzeigen oder Ändern der WordDelimiters--Eigenschaft finden Sie unter Get-PSReadLineOption und Set-PSReadLineOption-.

GotoBrace

Wechseln Sie zur übereinstimmenden Klammer, Klammer oder eckigen Klammer.

  • Befehl: <Ctrl+]>
  • Vi Einfügemodus: <Ctrl+]>
  • Vi-Befehlsmodus: <Ctrl+]>

Gehe zuSpalte

Wechseln zur spalte, die durch Arg angegeben ist.

  • Vi-Befehlsmodus: <|>

Gehe zuFirstNonBlankOfLine

Bewegen Sie den Cursor auf das erste nicht leere Zeichen in der Zeile.

  • Vi-Befehlsmodus: <^>, <_>

VerschiebenZuEndeDerLinie

Bewegen Sie den Cursor an das Ende der Eingabe.

  • Vi-Befehlsmodus: <End>, <$>

NächsteLinie

Bewegen Sie den Cursor in die nächste Zeile.

  • Funktion ist ungebunden.

NächstesWort

Bewegen Sie den Cursor nach vorne an den Anfang des nächsten Worts. Word-Grenzen werden durch einen konfigurierbaren Satz von Zeichen definiert.

  • Befehl: <Ctrl+RightArrow>
  • Vi Einfügemodus: <Ctrl+RightArrow>
  • Vi-Befehlsmodus: <Ctrl+RightArrow>

Die Zeichen, die Wortgrenzen definieren, werden in der WordDelimiters-eigenschaft des PSConsoleReadLineOptions--Objekts konfiguriert. Informationen zum Anzeigen oder Ändern der WordDelimiters--Eigenschaft finden Sie unter Get-PSReadLineOption und Set-PSReadLineOption-.

NächstesWortEnde

Bewegen Sie den Cursor an das Ende des aktuellen Worts oder zwischen Wörtern bis zum Ende des nächsten Worts. Word-Grenzen werden durch einen konfigurierbaren Satz von Zeichen definiert.

  • Vi-Befehlsmodus: <e>

Die Zeichen, die Wortgrenzen definieren, werden in der WordDelimiters-eigenschaft des PSConsoleReadLineOptions--Objekts konfiguriert. Informationen zum Anzeigen oder Ändern der WordDelimiters--Eigenschaft finden Sie unter Get-PSReadLineOption und Set-PSReadLineOption-.

PreviousLine

Bewegen Sie den Cursor in die vorherige Zeile.

  • Funktion ist ungebunden.

ShellBackwardWord

Bewegen Sie den Cursor zurück zum Anfang des aktuellen Worts oder zwischen Wörtern, dem Anfang des vorherigen Worts. Word-Grenzen werden durch PowerShell-Token definiert.

  • Funktion ist ungebunden.

ShellForwardWord

Bewegen Sie den Cursor nach vorne an den Anfang des nächsten Worts. Word-Grenzen werden durch PowerShell-Token definiert.

  • Funktion ist ungebunden.

ShellNextWord

Bewegen Sie den Cursor an das Ende des aktuellen Worts oder zwischen Wörtern bis zum Ende des nächsten Worts. Word-Grenzen werden durch PowerShell-Token definiert.

  • Funktion ist ungebunden.

ViBackwardChar

Bewegen Sie den Cursor um ein Zeichen nach links im Vi-Bearbeitungsmodus. Dies kann den Cursor in die vorherige Zeile mit mehrzeiliger Eingabe verschieben.

  • Vi Einfügemodus: <LeftArrow>
  • Vi-Befehlsmodus: <LeftArrow>, <Backspace>, <h>

ViRückwärtsWort

Bewegen Sie den Cursor zurück zum Anfang des aktuellen Worts oder zwischen Wörtern, dem Anfang des vorherigen Worts. Word-Grenzen werden durch einen konfigurierbaren Satz von Zeichen definiert.

  • Vi-Befehlsmodus: <b>

Die Zeichen, die Wortgrenzen definieren, werden in der WordDelimiters-eigenschaft des PSConsoleReadLineOptions--Objekts konfiguriert. Informationen zum Anzeigen oder Ändern der WordDelimiters--Eigenschaft finden Sie unter Get-PSReadLineOption und Set-PSReadLineOption-.

ViForwardChar

Bewegen Sie den Cursor um ein Zeichen nach rechts im Vi-Bearbeitungsmodus. Dadurch wird der Cursor möglicherweise in die nächste Zeile mit mehrzeiliger Eingabe verschoben.

  • Vi Einfügemodus: <RightArrow>
  • Vi-Befehlsmodus: <RightArrow>, <Spacebar>, <l>

ViEndOfGlob

Verschiebt den Cursor an das Ende des Worts, wobei nur Leerzeichen als Trennzeichen verwendet werden.

  • Vi-Befehlsmodus: <E>

ViEndOfPreviousGlob

Wechselt zum Ende des vorherigen Worts, wobei nur Leerzeichen als Worttrennzeichen verwendet werden.

  • Funktion ist ungebunden.

ViGotoBrace

Ähnlich wie GotoBrace, ist aber zeichenbasiert statt tokenbasiert.

  • Vi-Befehlsmodus: <%>

ViNextGlob

Wechselt zum nächsten Wort, wobei nur Leerzeichen als Worttrennzeichen verwendet werden.

  • Vi-Befehlsmodus: <W>

ViNextWord

Bewegen Sie den Cursor nach vorne an den Anfang des nächsten Worts. Word-Grenzen werden durch einen konfigurierbaren Satz von Zeichen definiert.

  • Vi-Befehlsmodus: <w>

Die Zeichen, die Wortgrenzen definieren, werden in der WordDelimiters-eigenschaft des PSConsoleReadLineOptions--Objekts konfiguriert. Informationen zum Anzeigen oder Ändern der WordDelimiters--Eigenschaft finden Sie unter Get-PSReadLineOption und Set-PSReadLineOption-.

Verlaufsfunktionen

AnfangDerGeschichte

Wechseln zum ersten Element im Verlauf.

  • Emacs: <Alt+<>

Klare Geschichte

Löscht den Verlauf in PSReadLine. Dies wirkt sich nicht auf den PowerShell-Verlauf aus.

  • Befehl: <Alt+F7>

EndeDerGeschichte

Wechseln zum letzten Element (die aktuelle Eingabe) im Verlauf.

  • Emacs: <Alt+>>

ForwardSearchGeschichte

Führen Sie eine inkrementelle Vorwärtssuche durch den Verlauf durch.

  • Befehl: <Ctrl+s>
  • Emacs: <Ctrl+s>

GeschichteSuchenRückwärts

Ersetzen Sie die aktuelle Eingabe durch das "vorherige" Element aus dem PSReadLine-Verlauf, der den Zeichen zwischen dem Start und der Eingabe und dem Cursor entspricht.

  • Befehl: <F8>

GeschichteSearchForward

Ersetzen Sie die aktuelle Eingabe durch das "nächste" Element aus dem PSReadLine-Verlauf, das den Zeichen zwischen dem Start und der Eingabe und dem Cursor entspricht.

  • Befehl: <Shift+F8>

NächsteGeschichte

Ersetzen Sie die aktuelle Eingabe durch das "nächste" Element aus dem PSReadLine-Verlauf.

  • Befehl: <DownArrow>
  • Emacs: <DownArrow>, <Ctrl+n>
  • Vi Einfügemodus: <DownArrow>
  • Vi-Befehlsmodus: <DownArrow>, <j>, <+>

PreviousGeschichte

Ersetzen Sie die aktuelle Eingabe durch das "vorherige" Element aus dem PSReadLine-Verlauf.

  • Befehl: <UpArrow>
  • Emacs: <UpArrow>, <Ctrl+p>
  • Vi Einfügemodus: <UpArrow>
  • Vi-Befehlsmodus: <UpArrow>, <k>, <->

ReverseSearchGeschichte

Führen Sie eine inkrementelle Rückwärtssuche durch den Verlauf durch.

  • Befehl: <Ctrl+r>
  • Emacs: <Ctrl+r>

ViSearchHistoryBackward

Fordert eine Suchzeichenfolge auf und initiiert die Suche nach AcceptLine.

  • Vi Einfügemodus: <Ctrl+r>
  • Vi-Befehlsmodus: </>, <Ctrl+r>

Vervollständigungsfunktionen

Vollständig

Versuchen Sie, die Fertigstellung des Texts auszuführen, der den Cursor umgibt. Wenn mehrere mögliche Vervollständigungen vorhanden sind, wird das längste eindeutige Präfix für den Abschluss verwendet. Wenn Sie versuchen, den längsten eindeutigen Abschluss abzuschließen, wird eine Liste der möglichen Fertigstellungen angezeigt.

  • Emacs: <Tab>

Versuchen Sie, die Fertigstellung des Texts auszuführen, der den Cursor umgibt. Wenn mehrere mögliche Vervollständigungen vorhanden sind, wird das längste eindeutige Präfix für den Abschluss verwendet. Wenn Sie versuchen, den längsten eindeutigen Abschluss abzuschließen, wird eine Liste der möglichen Fertigstellungen angezeigt.

  • Befehl: <Ctrl+@>, <Ctrl+Spacebar>
  • Emacs: <Ctrl+Spacebar>

Mögliche Fertigstellungen

Zeigt die Liste der möglichen Fertigstellungen an.

  • Emacs: <Alt+=>
  • Vi Einfügemodus: <Ctrl+Spacebar>
  • Vi-Befehlsmodus: <Ctrl+Spacebar>

TabCompleteWeiter

Versuchen Sie, den Text, der den Cursor umgibt, mit dem nächsten verfügbaren Abschluss abzuschließen.

  • Befehl: <Tab>
  • Vi-Befehlsmodus: <Tab>

TabCompletePrevious

Versuchen Sie, den Text, der den Cursor umgibt, mit dem vorherigen verfügbaren Abschluss abzuschließen.

  • Befehl: <Shift+Tab>
  • Vi-Befehlsmodus: <Shift+Tab>

ViTabCompleteWeiter

Beendet die aktuelle Bearbeitungsgruppe bei Bedarf und ruft TabCompleteNext auf.

  • Vi Einfügemodus: <Tab>

ViTabCompleteZurück

Beendet die aktuelle Bearbeitungsgruppe, falls erforderlich, und ruft TabCompletePrevious auf.

  • Vi Einfügemodus: <Shift+Tab>

Verschiedene Funktionen

AkzeptierenNächsterVorschlagWort

Akzeptieren Sie das nächste Wort des Inline- oder ausgewählten Vorschlags.

  • Funktion ist ungebunden.

AcceptSuggestion (Vorschlag)

Übernehmen Sie den aktuellen Inline- oder ausgewählten Vorschlag.

  • Funktion ist ungebunden.

CaptureScreen (Erfassen)

Starten Sie die interaktive Bildschirmaufnahme – Pfeile nach oben/unten markieren Zeilen, geben Sie markierten Text in die Zwischenablage als Text und HTML ein.

  • Funktion ist ungebunden.

Bildschirm löschen

Löschen Sie den Bildschirm, und zeichnen Sie die aktuelle Linie am oberen Rand des Bildschirms.

  • Befehl: <Ctrl+l>
  • Emacs: <Ctrl+l>
  • Vi Einfügemodus: <Ctrl+l>
  • Vi-Befehlsmodus: <Ctrl+l>

Zahlenargument

Beginnen Sie ein neues Ziffernargument, das an andere Funktionen übergeben werden soll. Sie können dies als Multiplikator für die nächste Funktion verwenden, die von einer Tastepress aufgerufen wird. Wenn Sie z. B. <Alt+1><Alt+0> drücken, wird das Ziffernargument Wert auf 10 festgelegt. Wenn Sie dann die #-Taste drücken, werden 10 # Zeichen (##########) an die Eingabezeile gesendet. Ebenso können Sie dies mit anderen Vorgängen wie <Delete> oder Left-Arrowverwenden.

  • Befehl: , , , , , <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-Befehlsmodus: <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>, <9>

InvokePrompt (Eingabeaufforderung)

Löscht die aktuelle Eingabeaufforderung und ruft die Eingabeaufforderungsfunktion auf, um die Eingabeaufforderung erneut zu anzeigen. Nützlich für benutzerdefinierte Schlüsselhandler, die den Zustand ändern. Ändern Sie beispielsweise das aktuelle Verzeichnis.

  • Funktion ist ungebunden.

ScrollDisplayNach unten

Scrollen Sie auf einem Bildschirm nach unten.

  • Befehl: <PageDown>
  • Emacs: <PageDown>

ScrollDisplayDownLine

Scrollen Sie in der Anzeige um eine Zeile nach unten.

  • Befehl: <Ctrl+PageDown>
  • Emacs: <Ctrl+PageDown>

ScrollDisplayToCursor

Scrollen Sie die Anzeige zum Cursor.

  • Emacs: <Ctrl+End>

ScrollDisplayNach oben

Scrollen Sie die Anzeige nach oben.

  • Emacs: <Ctrl+Home>

ScrollDisplayNach oben

Scrollen Sie in der Anzeige um einen Bildschirm nach oben.

  • Befehl: <PageUp>
  • Emacs: <PageUp>

ScrollDisplayUpLine

Scrollen Sie in der Anzeige um eine Zeile nach oben.

  • Befehl: <Ctrl+PageUp>
  • Emacs: <Ctrl+PageUp>

SelbstEinfügen

Fügen Sie die Taste ein.

  • Funktion ist ungebunden.

ShowKeyBindings

Alle gebundenen Tasten anzeigen.

  • Befehl: <Ctrl+Alt+?>
  • Emacs: <Ctrl+Alt+?>
  • Vi Einfügemodus: <Ctrl+Alt+?>

ViCommandMode

Schalten Sie den aktuellen Betriebsmodus von Vi-Insert auf Vi-Command um.

  • Vi Einfügemodus: <Escape>

ViDigitArgumentInChord

Beginnen Sie ein neues Ziffernargument, um an andere Funktionen zu übergeben, während sie in einem der Vi-Akkords enthalten sind.

  • Funktion ist ungebunden.

ViEditVisuell

Bearbeiten Sie die Befehlszeile in einem Text-Editor, der durch $env:EDITOR oder $env:VISUAL angegeben ist.

  • Emacs: <Ctrl+x,Ctrl+e>
  • Vi-Befehlsmodus: <v>

ViExit

Beendet die Shell.

  • Funktion ist ungebunden.

ViInsertMode

Wechseln zum Einfügemodus.

  • Vi-Befehlsmodus: <i>

WhatIsKey

Lesen Sie eine Taste, und teilen Sie mir mit, an welche Taste der Schlüssel gebunden ist.

  • Befehl: <Alt+?>
  • Emacs: <Alt+?>

Auswahlfunktionen

ExchangePointAndMark

Der Cursor wird an der Position der Markierung platziert, und die Markierung wird an die Position des Cursors verschoben.

  • Emacs: <Ctrl+x,Ctrl+x>

Alles auswählen

Markieren Sie die gesamte Zeile.

  • Befehl: <Ctrl+a>

SelectBackwardChar

Passen Sie die aktuelle Auswahl an, um das vorherige Zeichen einzuschließen.

  • Befehl: <Shift+LeftArrow>
  • Emacs: <Shift+LeftArrow>

AuswählenRückwärtsLinie

Passen Sie die aktuelle Auswahl an, um sie vom Cursor an den Anfang der Zeile einzuschließen.

  • Befehl: <Shift+Home>
  • Emacs: <Shift+Home>

AuswählenRückwärtsWort

Passen Sie die aktuelle Auswahl an, um das vorherige Wort einzuschließen.

  • Befehl: <Shift+Ctrl+LeftArrow>
  • Emacs: <Alt+B>

SelectForwardChar

Passen Sie die aktuelle Auswahl an, um das nächste Zeichen einzuschließen.

  • Befehl: <Shift+RightArrow>
  • Emacs: <Shift+RightArrow>

AuswählenForwardWord

Passen Sie die aktuelle Auswahl an, um das nächste Wort mithilfe von ForwardWord einzuschließen.

  • Emacs: <Alt+F>

Linie auswählen

Passen Sie die aktuelle Auswahl an, um sie vom Cursor bis zum Ende der Zeile einzuschließen.

  • Befehl: <Shift+End>
  • Emacs: <Shift+End>

AuswählenNächstesWort

Passen Sie die aktuelle Auswahl an, um das nächste Wort einzuschließen.

  • Befehl: <Shift+Ctrl+RightArrow>

SelectShellBackwardWord

Passen Sie die aktuelle Auswahl an, um das vorherige Wort mithilfe von ShellBackwardWord einzuschließen.

  • Funktion ist ungebunden.

AuswählenShellForwardWord

Passen Sie die aktuelle Auswahl an, um das nächste Wort mithilfe von ShellForwardWord einzuschließen.

  • Funktion ist ungebunden.

SelectShellNextWord

Passen Sie die aktuelle Auswahl an, um das nächste Wort mithilfe von ShellNextWord einzuschließen.

  • Funktion ist ungebunden.

Markieren

Markieren Sie die aktuelle Position des Cursors für die Verwendung in einem nachfolgenden Bearbeitungsbefehl.

  • Emacs: <Ctrl+@>

Predictive IntelliSense-Funktionen

Anmerkung

Predictive IntelliSense muss aktiviert sein, um diese Funktionen zu verwenden.

AkzeptierenNextWordSuggestion

Akzeptiert das nächste Wort des Inlinevorschlags von Predictive IntelliSense. Diese Funktion kann mit Strg+F gebunden werden, indem der folgende Befehl ausgeführt wird.

Set-PSReadLineKeyHandler -Chord "Ctrl+f" -Function ForwardWord

AcceptSuggestion (Vorschlag)

Akzeptiert den aktuellen Inlinevorschlag von Predictive IntelliSense, indem Sie den Pfeil nach rechts drücken, wenn sich der Cursor am Ende der aktuellen Zeile befindet.

Suchfunktionen

Charaktersuche

Lesen Sie ein Zeichen, und suchen Sie vorwärts nach dem nächsten Vorkommen dieses Zeichens. Wenn ein Argument angegeben ist, suchen Sie vorwärts (oder rückwärts, wenn negativ) für das n. Vorkommen.

  • Befehl: <F3>
  • Emacs: <Ctrl+]>
  • Vi Einfügemodus: <F3>
  • Vi-Befehlsmodus: <F3>

ZeichenSucheRückwärts

Lesen Sie ein Zeichen, und suchen Sie rückwärts nach dem nächsten Vorkommen dieses Zeichens. Wenn ein Argument angegeben ist, suchen Sie rückwärts (oder vorwärts, wenn negativ) nach dem n. Vorkommen.

  • Befehl: <Shift+F3>
  • Emacs: <Ctrl+Alt+]>
  • Vi Einfügemodus: <Shift+F3>
  • Vi-Befehlsmodus: <Shift+F3>

RepeatLastCharSearch

Wiederholen Sie die letzte aufgezeichnete Zeichensuche.

  • Vi-Befehlsmodus: <;>

RepeatLastCharSearchRückwärts

Wiederholen Sie die letzte aufgezeichnete Zeichensuche, aber in entgegengesetzter Richtung.

  • Vi-Befehlsmodus: <,>

WiederholenSuchen

Wiederholen Sie die letzte Suche in dieselbe Richtung wie zuvor.

  • Vi-Befehlsmodus: <n>

WiederholenSuchenRückwärts

Wiederholen Sie die letzte Suche in dieselbe Richtung wie zuvor.

  • Vi-Befehlsmodus: <N>

SearchChar

Lesen Sie das nächste Zeichen, und suchen Sie es nach vorne, und kehren Sie dann zu einem Zeichen zurück. Dies gilt für die Funktion "nicht".

  • Vi-Befehlsmodus: <f>

SearchCharBackward

Lesen Sie das nächste Zeichen, und suchen Sie es dann nach hinten, und kehren Sie dann zu einem Zeichen zurück. Dies gilt für die Funktion "T".

  • Vi-Befehlsmodus: <F>

SearchCharBackwardWithBackoff

Lesen Sie das nächste Zeichen, und suchen Sie es dann nach hinten, und kehren Sie dann zu einem Zeichen zurück. Dies gilt für die Funktion "T".

  • Vi-Befehlsmodus: <T>

SearchCharWithBackoff

Lesen Sie das nächste Zeichen, und suchen Sie es nach vorne, und kehren Sie dann zu einem Zeichen zurück. Dies gilt für die Funktion "nicht".

  • Vi-Befehlsmodus: <t>

SearchForward (Englisch)

Fordert eine Suchzeichenfolge auf und initiiert die Suche nach AcceptLine.

  • Vi Einfügemodus: <Ctrl+s>
  • Vi-Befehlsmodus: <?>, <Ctrl+s>

Benutzerdefinierte Schlüsselbindungen

PSReadLine unterstützt benutzerdefinierte Tastenzuordnungen mit dem Cmdlet Set-PSReadLineKeyHandler. Die meisten benutzerdefinierten Tastenbindungen rufen beispielsweise eine der oben genannten Funktionen auf.

Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward

Sie können ein ScriptBlock an einen Schlüssel binden. Der ScriptBlock kann ziemlich alles tun, was Sie wollen. Einige nützliche Beispiele sind:

  • Bearbeiten der Befehlszeile
  • Öffnen eines neuen Fensters (z. B. Hilfe)
  • Verzeichnisse ändern, ohne die Befehlszeile zu ändern

ScriptBlock empfängt zwei Argumente:

  • $key – Ein [ConsoleKeyInfo] Objekt, das den Schlüssel darstellt, der die benutzerdefinierte Bindung ausgelöst hat. Wenn Sie denselben ScriptBlock an mehrere Schlüssel binden und je nach Schlüssel unterschiedliche Aktionen ausführen müssen, können Sie $key überprüfen. Viele benutzerdefinierte Bindungen ignorieren dieses Argument.

  • $arg - Ein beliebiges Argument. Meistens wäre dies ein ganzzahliges Argument, das der Benutzer aus den Schlüsselbindungen DigitArgument übergibt. Wenn Ihre Bindung keine Argumente akzeptiert, ist es sinnvoll, dieses Argument zu ignorieren.

Sehen wir uns ein Beispiel an, in dem dem Verlauf eine Befehlszeile hinzugefügt wird, ohne sie auszuführen. Dies ist nützlich, wenn Sie feststellen, dass Sie etwas vergessen haben, aber nicht erneut die Befehlszeile eingeben möchten, die Sie bereits eingegeben haben.

$parameters = @{
    Key = 'Alt+w'
    BriefDescription = 'SaveInHistory'
    LongDescription = 'Save current line in history but do not execute'
    ScriptBlock = {
      param($key, $arg)   # The arguments are ignored in this example

      # GetBufferState gives us the command line (with the cursor position)
      $line = $null
      $cursor = $null
      [Microsoft.PowerShell.PSConsoleReadLine]::GetBufferState([ref]$line,
        [ref]$cursor)

      # AddToHistory saves the line in history, but does not execute it.
      [Microsoft.PowerShell.PSConsoleReadLine]::AddToHistory($line)

      # RevertLine is like pressing Escape.
      [Microsoft.PowerShell.PSConsoleReadLine]::RevertLine()
  }
}
Set-PSReadLineKeyHandler @parameters

Viele weitere Beispiele finden Sie in der Datei SamplePSReadLineProfile.ps1 , die im PSReadLine-Modulordner installiert ist.

Die meisten Tastenbindungen verwenden einige Hilfsfunktionen zum Bearbeiten der Befehlszeile. Diese APIs sind im nächsten Abschnitt dokumentiert.

Benutzerdefinierte Schlüsselbindungsunterstützungs-APIs

Die folgenden Funktionen sind in Microsoft.PowerShell.PSConsoleReadLine öffentlich, können jedoch nicht direkt an einen Schlüssel gebunden werden. Die meisten sind bei benutzerdefinierten Schlüsselbindungen nützlich.

void AddToHistory(string command)

Fügen Sie dem Verlauf eine Befehlszeile hinzu, ohne sie auszuführen.

void ClearKillRing()

Löschen Sie den Kill-Ring. Dies wird hauptsächlich für Tests verwendet.

void Delete(int start, int length)

Löschen von Längenzeichen von Anfang an. Dieser Vorgang unterstützt Rückgängig/Wiederholen.

void Ding()

Führen Sie die Ding-Aktion basierend auf der Benutzereinstellung aus.

void GetBufferState([ref] string input, [ref] int cursor)
void GetBufferState([ref] Ast ast, [ref] Token[] tokens,
  [ref] ParseError[] parseErrors, [ref] int cursor)

Diese beiden Funktionen rufen nützliche Informationen zum aktuellen Zustand des Eingabepuffers ab. Der erste wird häufiger für einfache Fälle verwendet. Die zweite wird verwendet, wenn Ihre Bindung mit dem Ast etwas fortgeschrittener macht.

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(bool includeBound, bool includeUnbound)

IEnumerable[Microsoft.PowerShell.KeyHandler]
  GetKeyHandlers(string[] Chord)

Diese beiden Funktionen werden von Get-PSReadLineKeyHandlerverwendet. Der erste wird verwendet, um alle Tastenbindungen abzurufen. Die zweite wird verwendet, um bestimmte Tastenbindungen abzurufen.

Microsoft.PowerShell.PSConsoleReadLineOptions GetOptions()

Diese Funktion wird von Get-PSReadLineOption verwendet und ist wahrscheinlich nicht zu nützlich in einer benutzerdefinierten Schlüsselbindung.

void GetSelectionState([ref] int start, [ref] int length)

Wenn in der Befehlszeile keine Auswahl vorhanden ist, gibt die Funktion -1 sowohl im Start als auch in der Länge zurück. Wenn in der Befehlszeile eine Auswahl vorhanden ist, wird der Start und die Länge der Auswahl zurückgegeben.

void Insert(char c)
void Insert(string s)

Fügen Sie am Cursor ein Zeichen oder eine Zeichenfolge ein. Dieser Vorgang unterstützt Rückgängig/Wiederholen.

string ReadLine(runspace remoteRunspace,
  System.Management.Automation.EngineIntrinsics engineIntrinsics)

Dies ist der Haupteinstiegspunkt zu PSReadLine. Es unterstützt keine Rekursion, daher ist dies in einer benutzerdefinierten Schlüsselbindung nicht hilfreich.

void RemoveKeyHandler(string[] key)

Diese Funktion wird von Remove-PSReadLineKeyHandler verwendet und ist wahrscheinlich nicht zu nützlich in einer benutzerdefinierten Schlüsselbindung.

void Replace(int start, int length, string replacement)

Ersetzen Sie einige der Eingaben. Dieser Vorgang unterstützt Rückgängig/Wiederholen. Dies wird gegenüber "Löschen" bevorzugt, gefolgt von "Einfügen", da sie als einzelne Aktion für "Rückgängig" behandelt wird.

void SetCursorPosition(int cursor)

Bewegen Sie den Cursor an den angegebenen Offset. Die Cursorbewegung wird für "Rückgängig" nicht nachverfolgt.

void SetOptions(Microsoft.PowerShell.SetPSReadLineOption options)

Diese Funktion ist eine Hilfsmethode, die vom Cmdlet "Set-PSReadLineOption" verwendet wird, kann jedoch für eine benutzerdefinierte Schlüsselbindung nützlich sein, die eine Einstellung vorübergehend ändern möchte.

bool TryGetArgAsInt(System.Object arg, [ref] int numericArg,
  int defaultNumericArg)

Diese Hilfsmethode wird für benutzerdefinierte Bindungen verwendet, die DigitArgument berücksichtigen. Ein typischer Anruf sieht wie folgt aus:

[int]$numericArg = 0
[Microsoft.PowerShell.PSConsoleReadLine]::TryGetArgAsInt($arg,
  [ref]$numericArg, 1)

Notizen

Befehlsverlauf

PSReadLine verwaltet eine Verlaufsdatei mit allen Befehlen und Daten, die Sie über die Befehlszeile eingegeben haben. Bei den Verlaufsdateien handelt es sich um eine Datei mit dem Namen $($host.Name)_history.txt. Auf Windows-Systemen wird die Verlaufsdatei bei $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLinegespeichert. Auf Nicht-Windows-Systemen werden die Verlaufsdateien unter $env:XDG_DATA_HOME/powershell/PSReadLine oder $env:HOME/.local/share/powershell/PSReadLinegespeichert.

Der Verlauf kann vertrauliche Daten einschließlich Kennwörtern enthalten. PSReadLine versucht, vertrauliche Informationen herauszufiltern. Alle Befehlszeilen, die die folgenden Zeichenfolgen enthalten, werden nicht in die Verlaufsdatei geschrieben.

  • Passwort
  • asplaintext
  • Zeichen
  • apikey
  • geheim

Feedback & Beitrag zu PSReadLine

PSReadLine auf GitHub-

Sie können eine Pull-Anforderung senden oder Feedback auf der GitHub-Seite senden.

Siehe auch

  • PSReadLine wird stark von der GNU Readline Bibliothek beeinflusst.