An sich mag ich das Konzept von fish ja nicht besonders – Ich glaube nicht an "Die eine Konfiguration mit der alle zufrieden sind", ausserdem ist 'ne nicht konfigurierbare Shell doch langweilig ;-) – aber die Shell hat doch einige sehr nette Features.
Eines davon ist der in der Shell angezeigte Verzeichnisname:
derf@saviour ~> cd lib/pics/wallpapers/
derf@saviour ~/l/p/wallpapers>
Wie man sieht, wird der gesamte Pfad angezeigt, von allen übergeordneten Verzeichnissen jedoch nur der erste Buchstabe (ich bezeichne das meist als "reverse tabbing").
Da ich aber nicht wegen eines einzigen Features die zsh aufgeben wollte, präsentiere ich hier: reverse-tabbing für die zsh!
Das ganze ist eine kleine Shell-Funktion, welche einfach den gesamten Pfad durchgeht und daraus einen fish-ähnlichen Pfad erzeugt, der auf Wunsch sogar so gewählt werden kann, dass er bei einem normalen Tabben (fast) immer wieder zum tatsächlichen Pfad wird.
Diese Funktion wird entweder mit setopt prompt_subst
als $(rtab)
in den
Prompt geschrieben, oder als psvar[n]=$(rtab)
in der Funktion chpwd
, wobei
der Prompt %nv
enthalten würde.
Usage: rtab [-f -l -s -t] [directory]
-f, --fish fish-simulation, like -l -s -t
-l, --last Print the last directorys full name
-s, --short Truncate directory names to the first character
-t, --tilde Print ~ for the home directory
Ich persönlich bevorzuge rtab -f, welches in meiner Shell dann schon sehr fish-ähnlich aussieht.
derf@saviour ~ > cd lib/pics/wallpapers
derf@saviour ~/l/p/wallpapers >