Fish Shell 3.7.0: Hålla fast vid C++ samtidigt som förbättringar införs
Fish Shell 3.7.0 förbättrar historikvisaren, prestanda och skriptning. Framtida 4.x-versioner kommer att övergå Fish interna delar till Rust.
I Linux-ekosystemet är en funktion som utmärker sig för sin mångsidighet och kraft det stora utbudet av skal som användare kan välja mellan.
Tillsammans med den klassiska Bash och andra som Zsh och Tcsh har Fish länge varit allmänt erkänd och adopterad som ett populärt val bland många Linux-användare på grund av sitt användarvänliga tillvägagångssätt och avancerade funktioner.
Den nyligen tillkännagivna Fish 3.7.0-releasen, med över 1289 commits, stärker denna position och lovar förbättringar och åtgärder. Låt oss ta en titt på dem.
Fish Shell 3.7.0
Huvudpunkter
Fish 3.7.0 förbättrar hanteringen av kommandoradshistorik. Nu kan användare enkelt hitta komplexa kommandorader med delsekvensmatchningar. Historikbläddraren introducerar också en smartare sökfunktion och ett mer intuitivt sätt att hantera sökfrågor som inte matchar.
När det gäller prestanda, kommandoavslutning och globbing, se betydande hastighetsförbättringar, särskilt på långsammare filsystem som NFS, vilket är en stor fördel för användare som arbetar med tunga kommandoradsuppgifter.
En annan framstående funktion i denna uppdatering är möjligheten att ställa in en timeout för fler-tangent-sekvenser, vilket förbättrar användbarheten för funktioner som lägesbyte i vi-läge. Samtidigt kommer LS_COLORS inte längre att ställas in automatiskt, vilket uppmuntrar användare att ta till sig mer personliga konfigurationer.
Förbättringar av skriptning och kommandorad
- Stabilitet och flexibilitet: Fish 3.7.0 åtgärdar flera buggar och förbättrar skriptupplevelsen. Från att fixa kraschscenarier till att förbättra det inbyggda kommandot ‘jobs‘, gör uppdateringen skriptningen mer pålitlig och mångsidig.
- Interaktiv upplevelse: Uppdateringen medför märkbara förändringar i den interaktiva upplevelsen, som förbättrad historiksökning i vi-läge, bättre rapportering av arbetskatalog i iTerm2 och förbättrade konfigurationer för markeringsfärg.
- Kommandofullständighet och förbättringar av prompten: Fish 3.7.0 introducerar också en ny bind-funktion för historikhantering, förbättrade felmeddelanden och utökat stöd för externa kommandon.
Estetiska och användarvänlighetsjusteringar
Standardtemat använder nu namngivna färger, i linje med terminalpaletter, och Dracula-temat synkroniseras med uppströmsändringar. Dessutom visar promptarna arbetskataloger mer exakt.
Slutligen lägger Fish 3.7.0 till en mängd kompletteringar för olika kommandon, vilket gör livet enklare för användarna. Utgåvan innehåller också förbättringar av generatorer för kommandokomplettering i manualen, och andra justeringar av kompletteringar har gjorts.
Rust: Vägen Framåt
Fish-skalet är huvudsakligen skrivet i C++. Men detta kommer att ändras snart.
David Adam, en av Fishs ledande utvecklare, bekräftade att nästan all C++-kod har övergått framgångsrikt till Rust. Denna övergång lade till 87 029 rader Rust-kod samtidigt som alla 76 776 rader C++-kod togs bort, vilket markerar en 100% omskrivning enligt deras senaste uppdatering.
Han klargör dock att denna milstolpe inte innebär att den nya versionen av Fish-skalet är redo för slutanvändare. Projektets nuvarande tillstånd är lovande, med vissa prestandaförbättringar, men det möter också utmaningar inom vissa områden.
Noterbart är att omskrivningen ännu inte har uppnått sina tekniska mål, särskilt vad gäller trådsäkerhet, vilket var en huvudmotivation för övergången till Rust.
Dessutom kvarstår plattformsstöd som ett betydande hinder. Kortvarigt stöd för plattformar som Cygwin och MSys2 verkar osannolikt, och paketering för äldre Linux-distributioner medför utmaningar.
Med detta i åtanke kommer den nuvarande tredje serien av Fish fortsätta använda C++ för sin kodning. Men när den lanserar sin fjärde serie förväntas den göra en betydande förändring genom att byta sitt primära programmeringsspråk till Rust.

