Újra bash - Szines fájlnévkiegészítés!
Az alábbi szkript egy függvényt tartalmaz, amivel lehetőségünk van **bash** alatt a zsh-tól olyannyira irigyelt színes tab completion-t szimulálni.
Az alábbi szkript egy függvényt tartalmaz, amivel lehetőségünk van bash alatt a zsh-tól olyannyira irigyelt színes tab completion-t szimulálni. Telepítése két lépésből áll:
- beolvastatni a fájlt, létrehozva ezzel a ‘color_completion’ függvényt:
. color_completion.sh
ne felejtsük a .bash_profile / .bashrc megfelelő szakaszába is beszúrni, ha megtetszett és tartósan is használni akarjuk - társítani egy billentyűhöz, mint ahogyan a Tab megnyomásával a beépített kiegézítőt érjük el:
bind -x '"\234":color_completion $READLINE_POINT "$READLINE_LINE"'bind '"\eOQ":"\234"'
A\234oktális szám egy szabadon választott keycode, ami még nincs lefoglalva; az\eOQpedig egy ANSI szekvencia, ami az én xterm-emen az F2-nek felel meg. Az egyes funkcióbillentyűk ANSI kódját úgy deríthetjük ki, hogy sima parancssorban megnyomjuk aCtrl-V-t, majd a vizsgált billentyűt. Fogunk látni két karaktert:~[, ez az ESC karakter megjelenése, a parancsban\e-t írjunk helyette. Biztos jobban kézreesik, ha a Tab-hoz rendeljük hozzá a szkriptünket (ekkor\eOQhelyett\C-Ikell) - elvileg lehetséges, de nem próbáltam. A beépített kiegészítőt meg mondjuk aShift-Tab-hoz (\e[Z) vagy fordítva…
Képességei:
- A bash-nél megszokott módon kezeli a symlinkeket
- A szinezés az ls(1) működését követi - ugyanis belsőleg azt hívja -, az
$LS_COLORSváltozó szerkesztésével módosítható
Hiányosságai:
- Kevésbé okos a mezőelválasztók ügyében (fixen szóköz és egyenlőségjel)
- Egyelőre még nem olyan funkciógazdag, mint a zsh vagy maga a bash tabkiegészítő alprogramja - mivel ez a függvény teljesen független a beépített completion képességtől, nem is pluginolható
Plusz funkciói:
- Kevés fájlnál részletes listát ad (
ls -l), sok fájl esetén többoszlopos üzemmódba vált - Tudja a tilde – home könyvtár behelyettesítést
| |
A bejegyzést a szerző CC BY 4.0 licenc alatt engedélyezte.