~derf / interblag / entry / Reverse-Tabbing für Nicht-Fische
dark mode

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 >