O mundo dos shells acaba de ganhar uma atualização e tanto: o shell Fish 4 chegou, e ele não veio sozinho. Além de trazer uma série de melhorias visíveis para os usuários, a grande novidade é que o Fish foi completamente reescrito em Rust. Sim, você leu certo: Rust, a linguagem que vem conquistando corações e mentes no mundo da programação e causando problemas entre os desenvolvedores do kernel Linux. Mas o que isso significa na prática? Vamos mergulhar nas novidades e descobrir por que essa versão é tão especial.
Rust: a estrela por trás do palco
A reescrita do Fish em Rust é um marco importante. Rust é uma linguagem de programação conhecida por sua segurança e desempenho, e essa mudança promete trazer maior estabilidade e eficiência para o shell. No entanto, para o usuário comum, a transição deve ser praticamente invisível. Os comandos, configurações e interações do dia a dia permanecem os mesmos. Então, se você já é fã do Fish, nada de reaprender tudo do zero.
Melhorias notáveis
Agora, vamos ao que realmente importa: as novidades que vão impactar seu fluxo de trabalho. Uma das grandes mudanças é a introdução de um sistema de notação de teclas mais intuitivo. Em vez de precisar decorar sequências obscuras como e[1;5C, agora você pode simplesmente usar comandos como bind ctrl-right para referenciar a tecla Ctrl do lado direito do teclado.
Além disso, o Fish 4 se integra melhor com as capacidades do terminal. Ele agora usa automaticamente sequências OSC 133 para sincronizar prompts e saídas de comandos, resultando em uma experiência mais suave e integrada. E agora, no modo vi, o cursor muda de forma consistente em praticamente qualquer terminal, sem depender de detecções específicas do ambiente.
O histórico de comandos também ganhou upgrades. O ctrl-r, que permite navegar pelo histórico, agora suporta sintaxe de glob para filtrar entradas com mais precisão. VocÊ, por exemplo, poderá buscar por git*HEAD e encontrar todos os comandos que contêm “git” e “HEAD” na ordem correta sem precisar vasculhar o histórico.
Outra mudança sutil, mas significativa, é a atualização do tema padrão. Agora, os comandos são exibidos na cor “normal” do terminal, em vez do azul que, em muitos casos, era difícil de ler. Se você já usa o tema padrão, não se preocupe: suas configurações serão mantidas, a menos que você decida recarregar o tema manualmente.
Para quem precisa rodar o terminal em servidores remotos sem permissões de administrador, a nova funcionalidade de builds auto-instaláveis permite compilar o Fish em um único binário que extrai tudo o que precisa (funções, man pages e até a ferramenta de configuração web) diretamente para o diretório home.
Outra adição há muito esperada é a capacidade de excluir comandos específicos do histórico. Com a função fish_should_add_to_history, você pode definir quais comandos devem ser ignorados. Eles ainda ficam disponíveis temporariamente para reexecução, mas são descartados assim que você executa outro comando.
Para os entusiastas de scripting, o comando string match agora suporta a opção –max-matches, que limita o número de correspondências processadas. O comando set ganhou a opção –no-event, que suprime eventos de mudança de variável. Além disso, o comando time agora mede a duração de substituições de comandos, oferecendo uma visão mais precisa do tempo de execução.
Se você ainda não experimentou o Fish, talvez seja a hora de dar uma chance. E para os veteranos, é hora de atualizar e explorar todas as novidades que o Fish 4 tem a oferecer. Mas afinal, você sabe a diferença entre o Fish e o tradicional Bash?