In der Fish Shell ist die aktuelle Befehlszeile syntaktisch hervorgehoben:
Gibt es eine Möglichkeit, dasselbe Verhalten in Bash zu erzielen?
Es gibt so etwas nur für zsh, nicht für bash. Ist es möglich, dass dies zu Bash portiert werden könnte?
Zur Verdeutlichung für diejenigen, die den bereitgestellten Screenshot, die Erklärung oder den Link nicht verstehen: Ich möchte den tatsächlichen Text hervorheben, der am Terminal eingegeben wird. Die Befehle, Klammern, Anführungszeichen usw.
bash
syntax-highlighting
fish
Wuffers
quelle
quelle
Antworten:
Bash wird
readline
für interaktive Eingaben verwendet, sodass die Syntaxhervorhebung in diesem Programm implementiert werden muss. Ich habe eine Google Groups-Diskussion zum Codieren einer solchen Funktion gefunden.Die Fischschale verwendet einen eigenen Zeileneditor, der für dieses Programm spezifisch ist und nicht direkt portiert werden kann.
Möglicherweise
zsh
ähnelt dies Bash und der Zeileneditor ist erweiterbar . Ich habe zsh-syntax-highlighting gefunden , um diese Funktion in zsh zu aktivieren.quelle
Es gibt keine einfache Möglichkeit, eine Syntaxhervorhebung in GNU Bash (oder GNU Readline) zu erhalten, aber es ist grundsätzlich möglich, einen eigenen Zeileneditor in Bash-Skripten zu implementieren, indem alle Benutzereingaben mit dem eingebauten Befehl an Shell-Funktionen gebunden werden
bind -x 'BYTE: SHELL-COMMAND'
. Es ist natürlich möglich, das Feature der Syntaxhervorhebung in Ihren eigenen Zeileneditor zu integrieren.Tatsächlich habe ich einen Zeileneditor
ble.sh
mit Funktionen wie Syntaxhervorhebung und automatischen Vorschlägen implementiert . Es unterstützt Bash 3.0-5.0. Da es in (fast) reinen Bash-Skripten geschrieben ist, können Sie nursource
das Skript in~/.bashrc
. Hier ist ein Beispiel für die Einrichtungble.sh
in bashrc ( Details finden Sie in der README- Datei ):Hinweis : Ich weiß, dass das Beantworten von Fragen mit Links zu eigenen Produkten manchmal als Eigenwerbung und nicht wünschenswert angesehen wird. Daher habe ich auf die Beantwortung dieser Frage verzichtet. Es gab jedoch keine anderen Lösungen, die nicht lange auftauchten, und auch diese Frage hat viele Ansichten (was ihre erhebliche Nachfrage widerspiegelt). Also habe ich beschlossen, diese Frage heute zu beantworten. Unter Bezugnahme auf die folgenden Meta-Fragen / Antworten habe ich die Idee zuerst beschrieben und als Beispiel für die Implementierung einen Link zu meinem Projekt bereitgestellt.
Ja, ich muss zugeben, dass dies eigentlich Eigenwerbung ist , aber ich glaube, dass dies Menschen hilft, die das Feature wollen. Wenn es Probleme gibt, würde ich mich freuen, wenn Sie mir dies durch Kommentare mitteilen könnten.
quelle
Ich denke nicht Syntax - Hervorhebung auf der Shell - Ebene geschehen soll , sondern an der Schnittstelle Ebene (nur meine Meinung -und jemanden anderes es seems-), so dass ich in „Plugins“ für Terminal oder Ihre Lieblings - Konsole, zum Beispiel aussehen würde dieser Plug in für Kate könnte helfen, oder diese andere, die Syntax-Hervorhebung in Nano bietet
Im Folgenden erfahren Sie noch mehr über das Syntaxhervorheben in Terminal:
obwohl hier das wie besser erklärt wird
Ich hoffe es hilft
quelle
ls
Befehls basierend auf dem Dateityp hervor, der nichts mit der Shell-Syntax zu tun hat.