Angesichts der Vielzahl von Fragen, die sich im Zusammenhang mit Subshells in Bash herausstellen ("Warum erhöht sich meine Variable in dieser Pipeline- while read
Schleife nicht ?"), Dachte ich nur, es wäre sehr schön, auf einen Editor oder Dienst mit Code zu verweisen Die in Subshells auszuführende Datei ist anders formatiert als der in der übergeordneten Shell ausgeführte Code. Es kann als Lehrmittel nützlich sein (sehen Sie den Unterschied zwischen code | code
und code < <(code)
sofort). Existiert das?
Bonuspunkte, wenn jemand sie für jEdit oder VIm einsetzt.
Natürlich muss es nicht perfekt sein (meiner Erfahrung nach gibt es keine Syntaxhervorhebung), aber ich vermute, dass Dinge wie (foo=bar; echo $foo;)
und command | while read ...
nicht zu schwierig für den Anfang sein sollten.
vim
Code-Hervorhebung hinzufügen .Antworten:
Ich glaube nicht, dass es das gibt. Es wäre nützlich, aber mit den in Editoren verwendeten Syntaxanalyseverfahren schwer zu implementieren. Aus der Sicht der Syntaxanalyse gibt es viele Schlüsselwörter und spezielle Symbole, die analysiert werden müssten, um einen Codeblock zu bestimmen, der zu einer Subshell gehört.
Aber ich würde mich freuen zu sehen, dass ich falsch liege und jemand hat sich die Mühe gemacht, solche Konfigurationen zu erstellen.
quelle
Mein Vim macht das schon.
Es stört mich tatsächlich, weil es dazu führt, dass Kommentare in den Subshells nicht die richtige Hervorhebung erhalten.
Dies ist Vim 7.3 Patch 874, der aus dem Quellcode kompiliert wurde.
quelle
zsh
wenn ich in einer Subshell arbeite. Das korrigiert die Syntaxhervorhebung.set -x; set -e
in diesem Abschnitt machen kann. Und um all diese Ausgaben einschließlich stderr in einem Protokoll festzuhalten.trap
Schlüsselwort sind dort hervorgehoben. Kommentare konnten nur nicht hervorgehoben werden. Der zsh-Dateityp funktioniert jedoch. Nun, soweit die Unterschale von der Hauptschale zu unterscheiden ist (was ist schließlich das, was Sie wollten, denke ich), verwenden Sie einige Kommentare?