Kann ich eine mehrzeilige Funktion oder ein Steuerungsflusssegment in der PowerShellFar-Editor-Konsole verwenden

1583
Justin Dearing

Wenn ich Farmanager mit FarNet und PowerShellFar betreibe, kann ich eine Art Konsole aufrufen, indem Sie F11 | auswählen .NET PowerShell | Editor - Konsole . Diese Konsole basiert auf dem far-Editor. In diese Konsole kann ich Snippets von Powershell-Skripts einfügen und bearbeiten.

Das einzige Problem ist, wenn ich eine mehrzeilige Funktion oder ein Steuerungsflusssegment in der Konsole verwenden möchte. Wenn ich es einfügen, hat das keine Auswirkung. Wenn ich versuche, einen einzugeben, erhalte ich eine Fehlermeldung ähnlich der folgenden:

ERROR: IncompleteParseException: Missing closing '}' in statement block. At line:1 char:42 + foreach ($number in 1..10 ) { $number * 7 <<<< + CategoryInfo : ParserError: (CloseBraceToken:TokenId) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingEndCurlyBrace 

Ist dies nur eine Einschränkung von PowerShellFar?

2
PowerShellFar 5.0.51 unterstützt mehrzeilige Befehle in Editor-Konsolen. Siehe meine aktualisierte Antwort. Roman Kuzmin vor 10 Jahren 0

1 Antwort auf die Frage

1
Roman Kuzmin

Dies ist lediglich eine Einschränkung der Editor-Konsolenfunktion von PSF. Die Editor-Konsole ist in erster Linie für echte Einzeiler-Befehle ausgelegt.

Mehrzeilige Befehle eignen sich ohnehin nicht für konsolenähnliche Benutzeroberflächen: Selbst wenn Sie einen solchen Befehl eingeben und ausführen können, können Sie ihn nicht ohne weiteres zum Ändern und erneuten Ausführen bringen.

Sie können jedoch immer noch ein Snippet kopieren / einfügen / aufrufen. Kopieren Sie den Befehl, fügen Sie ihn ein, wählen Sie ihn in der Editor-Konsole aus und führen Sie folgende Schritte aus : F11 | PowerShellFar | Rufen Sie den ausgewählten Code auf . Es ist ein bisschen unbeholfen, aber es funktioniert.


AKTUALISIEREN

PowerShellFar 5.0.51 unterstützt mehrzeilige Befehle in Editor-Konsolen:

  • Fügt wie in ISE ShiftEntereinfach eine neue Zeile hinzu, ohne den Befehl aufzurufen.
  • Enter an einer beliebigen Position des letzten Befehlsbereichs wird die gesamte Vorwahlnummer aufgerufen.
  • Infolgedessen ist es möglich, mehrzeiligen Code einzufügen und ihn mit aufzurufen Enter.