Hat Bash ähnliche Funktionen wie die Autosuggestions und Hervorhebungen von Fish?


37

Ich habe kürzlich 2 Funktionen in Fish bemerkt und mich gefragt, ob jemand weiß, ob diese auch in Bash verfügbar sind.

Satzstellung markieren

ss # 1

Besonderheiten:

  • Sie werden schnell bemerken, dass fish während der Eingabe eine Syntaxhervorhebung durchführt. Ungültige Befehle sind standardmäßig rot eingefärbt:
  • Ein Befehl ist möglicherweise ungültig, weil er nicht vorhanden ist oder auf eine Datei verweist, die Sie nicht ausführen können. Wenn der Befehl gültig wird, wird er in einer anderen Farbe angezeigt
  • fish unterstreicht gültige Dateipfade, wenn Sie sie eingeben
  • Dies sagt Ihnen, dass eine Datei existiert, die mit 'somefi' beginnt.

Autosuggestions

ss # 2

Besonderheiten:

  • fish schlägt während der Eingabe Befehle vor und zeigt den Vorschlag rechts vom Cursor in grau an.
  • Es kennt sich mit Pfaden und Optionen aus
  • Um die Autosuggestion zu akzeptieren, drücken Sie den Rechtspfeil oder die Strg-F-Taste. Wenn die Autosuggestion nicht Ihren Wünschen entspricht, ignorieren Sie sie einfach.

4
Das nächste Analogon bashist die Autovervollständigung. Leider ist fishdas Scripting so einfach, dass es einen sehr schlechten Ersatz für die Dinge darstellt, mit denen ich routinemäßig arbeite bash.
DopeGhoti

1
@ DopeGhoti - daher meine Frage an den Q 8-)
slm

2
Probieren Sie es über einen SSH-Link mit hoher Latenz aus, Sie werden die Inline-Funktionen ziemlich schnell hassen.
llua

1
@slm Bei den meisten dieser Fälle handelt es sich um Eckfälle, von denen einige hässlicher sind als andere, aber es kann ziemlich schlimm sein, wenn Sie in einer Vielzahl von Umgebungen eingesetzt werden. Die „Killer - Features“ für 4.3 sind cd -@, wait -n, globasciiranges, und $BASH_COMPAT, die eine Menge Leute wollten. Fast der ganze Rest ist nur Brandbekämpfung.
Chris Down

1
@strugee, es gibt einen zsh-Syntax-Textmarker - github.com/zsh-users/zsh-syntax-highlighting , ich habe ihn durch das sehr coole oh-my-zsh gefunden.
Joe Block

Antworten:


2

Ich bin mir nicht sicher, ob Bash hervorgehoben wird, aber die automatische Vervollständigung von Bash wird wahrscheinlich automatisch vorgeschlagen, wie Sie bereits erwähnt haben.

Obwohl in Bashs Auto-Vervollständigung keine Vorschläge angezeigt werden konnten, wie Sie möchten, wird der Inhalt tatsächlich gefüllt, wenn Sie [TAB] drücken. Wenn Sie zum Vervollständigen von Inhalten viele Möglichkeiten haben, drücken Sie zweimal die [TAB] -Taste und es werden alle Optionen angezeigt.

Beispielsweise:

$ cat /etc/pa[TAB]

=> nichts passiert

$ cat /etc/pa[TAB][TAB]
pam.d/       passwd       paths        paths.d/

=> zeigt alle Dateien / Verzeichnisse an, die mit "/ etc / pa" beginnen

Sie können konfigurieren, ob Befehle, Parameter, Dateien / Verzeichnisse automatisch vervollständigt werden sollen, oder wie beim Programmieren damit spielen.
Weitere Informationen finden Sie unter: http://www.linuxjournal.com/content/more-using-bash-complete -Befehl

Wenn Sie zu einem früheren Befehl springen möchten, drücken Sie ^ R und geben Sie ein paar Zeichen ein:

(reverse-i-search)`cd': cd ..

=> zum letzten Befehl springen mit "cd" beginnen

Ich weiß, das ist nicht genau das, was du willst, aber das macht fast dasselbe und hilft dir, es dir bequem genug zu machen.


8
Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu beantworten und diesen Vorschlag zu unterbreiten. Ich bin mit dieser Funktion vertraut und benutze sie täglich. Die Funktion, die ich wollte, war, dass sie dynamisch ausgeführt wird, ohne dass das [TAB] [TAB] gedrückt werden muss, um sie zu starten.
slm

2

Leider nicht. Aber ich gehe davon aus, dass sich diese Bash massiv verlangsamen wird, wenn Sie versuchen, diese Funktionen zu implementieren. Vielleicht hat deshalb noch niemand diese Funktionen "portiert".

Das nächste, das ich gefunden habe, war https://github.com/dvorka/hstr , eine Shell-Vorschlagsbox


beiseite bash:

Ich habe es nicht getestet, aber die einzige "portierte Alternative", die ich gefunden habe, war geschrieben für zsh: https://github.com/zsh-users/zsh-autosuggestions

Einige Fragen führten mich auch zu https://websetnet.com/shell-packs-power-python-bash/ und https://github.com/xonsh/xonsh alias http://xon.sh , vielleicht auch dazu unterstützt das out of the box

... aber ich bin mir ziemlich sicher, dass du dich nicht für andere Alternativen zu bash interessierst, denn dann könntest du einfach auf fish umsteigen;)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.