
Ich liebe Powershell, aber da ich eigentlich Linux lerne, gibt es ein paar Dinge, die mich wirklich stören. Zum Beispiel, wie die standardmäßige automatische Vervollständigung funktioniert.
Beispiel: Get-PS wird zu „Get-PSBreakpoint“ erweitert, was der erste passende Befehl ist. Wenn in Bash nur ein passender Befehl vorhanden ist, wird Bash zu dem passenden Befehl erweitert. Wenn mehrere vorhanden sind, bewirkt einmaliges Drücken der Tabulatortaste nichts. Durch doppeltes Tippen auf die Tabulatortaste wird eine Liste mit passenden Befehlen angezeigt, die jedoch nicht erweitert wird. Gibt es eine Möglichkeit, Powershell dazu zu bringen, sich so zu verhalten?
Und noch etwas, wenn ich eine Zeile geschrieben habe und den Marker zu einem früheren Befehl zurückverschiebe (der Marker ist dort, wo das ^ ist):
"Get-PSS^ | Remove-PSSession" wird automatisch zu "Get-PSSession^" vervollständigt und entfernt alle nachfolgenden Befehle. In Bash wären die nachfolgenden Befehle unverändert vorhanden. Gibt es eine Möglichkeit, Powershell dazu zu bringen, die nachfolgenden Befehle bei der automatischen Vervollständigung nicht zu entfernen?
Ein Bonus wäre, mit STRG+L den Bildschirm zu löschen, mit STRG+A zum Zeilenanfang zu gelangen und mit STRG+E zum Zeilenende.
Antwort1
KassePSReadline.
Aus dem Artikel:
Dieses Modul ersetzt die Befehlszeilenbearbeitung in PowerShell.exe. Es bietet:
- Syntaxfärbung
- Einfache Syntaxfehlerbenachrichtigung
- Gutes Mehrzeilen-Erlebnis (sowohl beim Bearbeiten als auch im Verlauf)
- Anpassbare Tastenkombinationen
- Cmd- und Emacs-Modi (keiner von beiden ist bereits vollständig implementiert, aber beide sind verwendbar)
- Viele Konfigurationsmöglichkeiten
- Vervollständigung im Bash-Stil (optional im Cmd-Modus, Standard im Emacs-Modus)
- Interaktive Verlaufssuche im Bash/zsh-Stil (STRG-R)
- Emacs Ring ziehen/töten
- PowerShell-Token-basierte „Wort“-Bewegung und Kill
- Rückgängig wiederholen
- Automatisches Speichern des Verlaufs, einschließlich der gemeinsamen Nutzung des Verlaufs über Live-Sitzungen hinweg
- "Menü"-Vervollständigung (ähnlich wie Intellisense, Auswahlvervollständigung mit Pfeilen) über Strg+Leertaste
Ich benutze es täglich!
Antwort2
Vielleicht sollten Sie einen Blick darauf werfenPowertab, eine anpassbare PowerShell-Tab-Erweiterung.
Antwort3
hallo peter drück einfachF8für etwas wie Speedsearch. Es wird mit den Befehlen vervollständigt, die Sie zuvor ausgeführt haben und die mit dem beginnen, was Sie in der Zeile haben. Das Problem mit dem Löschen des Trailings ist ärgerlich, ich schreibe einen Vorschlag in Connect zu demselben Problem. In der Hauptsache könnten Sie Powershell ISE verwenden, das sich etwas besser verhält (löscht die Trailing-Zeichen nicht).
Antwort4
PowerShell verwendet dieselben Konsolenfunktionen wie die bewährte Eingabeaufforderung. Sie verfügen also über die üblichen Home-/End-Tasten und:
- F3um den vorherigen Befehl aufzurufen
- F1um ein einzelnes Zeichen aus dem vorherigen Befehl zu kopieren
- F7Popup-Verlaufsfenster
...aber es gibt meines Wissens keine Möglichkeit, alle möglichen Vervollständigungen anzuzeigen.