A Fish shell 4.0 megjelent Rustban újraírva

Megérkezett a fish shell 4.0-s verziója, amely több mint 200 közreműködő munkáját tükrözi, 2731 commit formájában. Ahogy korábbi cikkünkben már beszámoltunk róla, a teljes shellt Rust nyelvre írták át, amelyből reményeink szerint, a felhasználók semmit sem fognak észrevenni. Az új kiadás számos hasznos fejlesztést hoz, beleértve a billentyűkötések egyszerűbb kezelését, jobb terminálintegrációt, új parancssori funkciókat és egy öntelepíthető binárist.

fish

Billentyűkötések és terminálkezelés

A bind parancs mostantól már olvashatóbb billentyűnotációt használ, így a bonyolult escape szekvenciák helyett elegendő például bind ctrl-right vagy bind alt-backspace formátumot írni. A shell jobban felismeri a különböző billentyűkombinációkat, és támogatja az olyan terminálprotokollokat, mint az xterm “modifyOtherKey” és a kitty billentyűzetprotokoll, így például külön bind-olható a ctrl-i, ctrl-I és tab.

Bizonyos terminálok esetében hibák merültek fel, például a JetBrains IDE-k beépített termináljában vagy a Weztermben, amelyeket a fejlesztőcsapat igyekezett megkerülni. Ha furcsa karakterek, például “5u” vagy “=0” jelennek meg a parancssorban, az új protokollok kikapcsolhatók a set -Ua fish_features no-keyboard-protocols paranccsal.

Parancssor és témázás

A fish mostantól OSC 133 szekvenciákat használ a prompt és a parancskimenet jobb terminálintegrációja érdekében, így a shell jobban együttműködik a terminállal. Az olyan módosítások, mint a commandline -i foo, azonnal végrehajtódnak, ami könnyebbé teszi a testreszabott bind-ek létrehozását.

A ctrl-r történetkereső fejlődött, és támogatja a globális keresést * karakterrel, például git*HEAD keresheti a “git” és “HEAD” szavakat tartalmazó parancsokat. A keresés mostantól csak az aktuális parancsra vonatkozik, így multiline parancsok is könnyebben összeállíthatók.

A szoftver alapértelmezett színpalettájában is változás történt. A parancsok eddig kékkel jelentek meg, de mivel sok terminálon a kék szín nehezen olvasható volt, most az alapértelmezett terminálszínt használja. Ha valaki szeretné az új színvilágot használni, frissítheti a témát a fish_config segítségével.

Öntelepítő bináris létrehozás és parancstörténet kizárás

Mostantól lehetőség van öntelepíthető bináris létrehozására. Ez azt jelenti, hogy egyetlen fájlt lehet futtatni, amely tartalmazza a fish összes szükséges elemét, beleértve a függvényeket, man oldalakat és a webes konfigurációs eszközt. Az első futtatáskor a szoftver kibontja ezeket az otthoni könyvtárba, így nem szükséges root jogosultság vagy csomagtelepítés. Ez különösen hasznos lehet olyan szervereken, ahol a fish nincs telepítve, de mégis használni szeretnénk.

Az új verzióban egy régi kérés is megvalósult: lehetőség van bizonyos parancsokat kizárni a parancstörténetből. Más shellek a HISTIGNORE változót használják erre, de a fish inkább a fish_should_add_to_history függvényt vezette be, amely testre szabható.

Fejlesztések a fish scriptnyelvében

A string match kapott egy új --max-matches opciót, amely korlátozza a találatok számát. A set új --no-event kapcsolója lehetővé teszi a változók módosítását eseménykiváltás nélkül. A time mostantól már a parancshelyettesítéseket is méri. A complete --erase pedig biztosítja, hogy egy törölt kiegészítés ne töltődjön vissza automatikusan.

További információért a Fish Shell 4 összes újdonságáról lásd a kiadási bejelentést.