Shell dei comandi Fish Shell, popolare tra gli utenti dei terminali, è stata aggiornata alla versione 4.0, che ha portato cambiamenti e miglioramenti significativi.
La principale novità è che Fish Shell è stata completamente riscritta nel linguaggio di programmazione Rust. Tuttavia, per gli utenti comuni, questa transizione sarà praticamente impercettibile: comandi, impostazioni e interazioni tipiche rimarranno gli stessi.
Altre modifiche significative
- Nuovo sistema di binding dei tasti. Fish Shell 4.0 presenta un sistema di binding dei tasti aggiornato e una maggiore compatibilità con i terminali. Ora è possibile sostituire sequenze esc non intuitive con comandi più leggibili, come bind ctrl-right. Grazie al supporto del protocollo della tastiera Kitty, Fish può distinguere sequenze di controllo che in precedenza sembravano identiche, come bind ctrl-i, bind ctrl-I e bind tab.
- Integrazione con le funzionalità del terminale. Fish ora utilizza automaticamente le sequenze OSC 133 per suggerimenti e output dei comandi, facilitando una sincronizzazione più fluida con vari terminali che in precedenza si basavano su script di integrazione shell aggiuntivi.
- Migliorato il trattamento dei comandi lunghi. La shell ora gestisce con maggiore attenzione le righe di comando lunghe, scorrendole anziché visualizzarle in modo errato. Qualsiasi modifica causata dai legami della riga di comando è immediatamente visibile, migliorando così l'esperienza utente.
- Storia dei comandi. Il paginatore della storia dei comandi, introdotto per la prima volta in Fish 3.6, è stato aggiornato. Ora è possibile utilizzare la sintassi glob per una filtrazione più precisa delle registrazioni della storia, ad esempio, cercando con * glob syntax — git*HEAD restituirà tutto ciò che contiene git e HEAD esattamente in quest'ordine.
- Nuovo tema predefinito. Nella nuova versione, il tema predefinito è stato leggermente modificato: i comandi ora vengono visualizzati nel "colore normale" del terminale piuttosto che nel "blu" difficilmente leggibile. Gli utenti esistenti manterranno le proprie impostazioni attuali, a meno che non riavviino manualmente il tema tramite fish_config.
- Build auto-installanti. La nuova funzionalità delle build self-installing potrebbe essere una vera svolta per gli utenti che lavorano frequentemente tramite SSH su server senza privilegi di amministrazione. Dopo la compilazione di Fish, è possibile avviare un unico file binario autonomo che estrae tutto il necessario: funzioni, pagine di guida e persino uno strumento web di configurazione nella home directory.
- Esclusione dei comandi dalla cronologia. Finalmente è disponibile la tanto attesa funzione che consente di escludere determinati comandi dalla cronologia. Definendo la funzione utente fish_should_add_to_history, è possibile decidere con precisione quali comandi verranno salvati.
- Miglioramenti per lo scripting:
- string match ora supporta l'opzione —max-matches, che consente di limitare il numero di corrispondenze elaborate;
- i cicli for non ricorderanno più le variabili locali delle iterazioni precedenti;
- set riceve l'opzione —no-event per sopprimere gli eventi di modifica delle variabili;
- time inizia a misurare prima, catturando la durata di eventuali sostituzioni di comandi prima della loro esecuzione;
- complete —erase disabilita completamente il completamento automatico per i comandi specificati.
Fonte: linux.org.ru
