
Ich suche nach einem Äquivalent zur Bash- complete
Funktion, mit der ich alle möglichen Vervollständigungen für einen Text aufliste. Im Grunde genommen soll es mir alle Optionen geben, die ich erhalten würde, wenn ich wiederholt die Tabulatortaste drücke. Ich weiß, dass es da draußen tolle Dinge wie Powertab gibt, aber ich brauche eine Möglichkeit, sie als Teil einer Funktion zu erhalten.
Ich versuche, die Tab-Vervollständigung in einem untergeordneten Prozess zu aktivieren, der eine einfache Shell ausführt. Die normale Tab-Vervollständigung ist nicht verfügbar, da ich von stdin/stdout sende und empfange. Ich hätte gerne eine Funktion, die ich aufrufen kann und die mir alle Vervollständigungen für einen Text liefert, da ich sonst nichts habe, worauf ich mich stützen kann.
Antwort1
Wie jeder weiß, haben alle Betriebssysteme, Sprachen und Skripttools ihre Stärken und Schwächen.
Sie sollten nicht erwarten, dass das, was Sie gewohnt sind oder wollen, auch im nächsten Ding enthalten ist, das Sie verwenden. Wenn X oder Y nicht vorhanden ist, bedeutet dies, dass Sie ein Add-On von 3rdP benötigen oder es selbst schreiben müssen.
Sie können den PowerShell-Konsolenhost und die ISE für viele Dinge konfigurieren, für alles andere müssen Sie Ihren eigenen Code schreiben. Lernen Sie die Tastaturkürzel für diePowerShell-Konsolenhost, die ISEUndfür VSCode.
Es gibt in PowerShell keinen „vollständigen“ Schalter, Cmdlet usw. Um das zu erhalten, wonach Sie im PowerShell-Konsolenhost suchen, geben Sie den Cmdlet-Namen, ein Leerzeichen, dann den Bindestrich ein und drücken dann STRG+Leertaste.
Get-ChildItem -[CRTL+Spacebar]
Im Editorbereich von ISE und VSCode gibt es dynamisches Popup-IntelliSense. In den Konsolen von ISE und VSCode funktioniert dieselbe Tastenkombination.
Soweit dieser Anwendungsfall...
„Ich versuche, die Tab-Vervollständigung in einem untergeordneten Prozess zu aktivieren, der eine einfache Shell ausführt. Die normale Tab-Vervollständigung ist nicht verfügbar, da ich von stdin/stdout sende und empfange. Ich hätte gerne eine Funktion, die ich aufrufen kann und die mir alle Vervollständigungen für einen Text liefert, da ich sonst nichts habe, woran ich mich orientieren kann.“
... müssen Sie dies selbst codieren, indem Sie beispielsweise die verfügbaren Sprachfunktionen von PowerShell verwenden:
Oder mithilfe eines Modul-Add-Ons, das in der MS PowershellGalery.com vorhanden ist
Find-Module -Name '*expansion*' | Format-Table -AutoSize
Find-Module -Name '*completer*' | Format-Table -AutoSize
Find-Module -Name '*tab*' | Format-Table -AutoSize
Hier finden Sie die Videos: https://channel9.msdn.com/Blogs/trevor-powershell/Authoring-Custom-PowerShell-Intellisense-with-Trevor-Sullivan
Abhängig von der verwendeten PowerShell-Version gibt es noch weitere Elemente, mit denen Sie andere Bash-ähnliche Dinge erreichen können. Zum Beispiel:
So funktioniert die Tab-Vervollständigung in PowerShell wie in BashNeue Versionen von PowerShell enthalten PSReadline, das für folgende Zwecke verwendet werden kann:
Set-PSReadlineKeyHandler -Key Tab -Function Complete
Um es dauerhaft zu machen, geben Sie diesen Befehl ein in
C:\Users\[User]\Documents\WindowsPowerShell\profile.ps1.