Ricerca nel sito web

Rilasciato Fish Shell 4.1 con sintassi delle parentesi e prompt transitori


La shell Fish 4.1 è ora disponibile con prompt transitori, comandi basati su parentesi, suggerimenti automatici più intelligenti e importanti miglioramenti ad argparse.

Fish shell, una moderna shell Unix progettata per essere user-friendly e facile da usare, ha annunciato la versione 4.1, una nuova release che si basa sulla serie 4.0, offrendo nuove funzionalità, miglioramenti nello scripting, aggiornamenti di compatibilità del terminale e alcune rimozioni di comportamenti più vecchi.

Uno dei cambiamenti più visibili è che ora è possibile scrivere comandi composti usando le parentesi graffe—{ echo 1; echo 2 }—similmente a come li gestiscono altri shell. Fish introduce anche prompt transitori. Se la variabile fish_transient_prompt è impostata, il prompt viene ridisegnato subito prima dell'esecuzione di un comando, il che può aiutare a mantenere più pulita la visualizzazione sullo schermo.

Inoltre, le completazioni con il tasto Tab ricevono una correzione importante. Invece di interrompersi da qualche parte a metà di un percorso, le completazioni vengono ora troncate a livello di directory. Ad esempio, completare all'interno di share/functions mostrerà …/foo.fish e …/bar.fish, rendendo più facile la lettura. Inoltre, le autosuggestioni sono diventate più intelligenti, supportando ora linee di comando multi-riga e includendo suggerimenti dalle singole righe nella cronologia multi-riga.

Sul lato scripting, il builtin argparse, un modulo che facilita la creazione di CLI user-friendly, ha ricevuto un lungo elenco di miglioramenti. Ora supporta una gestione più rigorosa delle opzioni lunghe, un migliore controllo degli argomenti sconosciuti, valori opzionali multipli e hook di validazione. Anche altri builtin sono stati aggiornati: string pad ora supporta il centramento, psub può combinare --suffix con --fifo, e read ha acquisito un'opzione --tokenize-raw.

Per quanto riguarda l'uso interattivo, i comandi incollati ora rimuovono automaticamente i prompt iniziali $, il feedback della ricerca nella cronologia è più mirato e l'eliminazione delle autosuggestioni fa lampeggiare solo la suggerimento invece dell'intera riga.

Anche le associazioni dei tasti sono state modificate: sulle piattaforme non macOS, Alt+freccia e Alt+canc/backspace agiscono ora su argomenti interi invece che su parole delimitate dalla punteggiatura. La modalità Vi ha inoltre ricevuto il supporto per incremento e decremento con Ctrl+A e Ctrl+X.

Il supporto del terminale è stato migliorato anche, poiché Fish ora supporta più stili di sottolineatura—compresi arricciati, puntinati e tratteggiati—che possono essere stilizzati separatamente dal colore del testo. Inoltre, il supporto del mouse è stato ampliato con l'opzione click_events di Kitty, permettendo il movimento del cursore e la selezione nel pager tramite clic.

Infine, ci sono alcune deprecazioni significative. I nomi dei tasti in stile Terminfo sono spariti e Fish non legge più direttamente dal database terminfo. Invece, utilizza i propri nomi dei tasti. Alcuni schemi di espansione con le parentesi graffe come {echo,echo} non sono più validi. Inoltre, set_color --background=COLOR non attiva più il grassetto di default, il che significa che i temi che si basano su questo comportamento potrebbero dover essere aggiornati.

Per ulteriori informazioni, consulta il registro delle modifiche.