O fish shell, um interpretador de comandos moderno e voltado para usabilidade, lançou oficialmente a versão 4.7.0 em 6 de maio de 2024. A atualização incorpora 198 novos commits desde a versão 4.6.0, com contribuições de 21 autores — incluindo 12 colaboradores inéditos no projeto. O lançamento reforça o compromisso do fish com robustez, acessibilidade e conformidade com padrões do ecossistema Linux.
Principais destaques da versão 4.7.0
A nova versão prioriza correções de comportamentos indesejados, refinamentos na experiência interativa e maior compatibilidade com ferramentas externas — especialmente em ambientes de desenvolvimento e distribuição.
✅ Correções de regressão críticas
Várias falhas introduzidas em versões anteriores foram resolvidas:
- No modo vi, o atalho
dl(delete character) agora funciona corretamente — corrigindo regressão identificada na versão 4.6 (#12461). - O uso de backspace logo após uma quebra de linha não causa mais comportamento inconsistente (#12583).
- Opções longas (ex.:
--help) deixaram de ser sugeridas incorretamente após digitação de opções curtas (ex.:-h) — problema remanescente desde a versão 4.3.3. - Em pipelines condicionais como
nosuchcommand || echo hello, o lado direito (echo hello) é executado apenas uma vez, conforme esperado — correção de um bug presente desde a versão 3.2 (#12654).
🖥️ Aprimoramentos na interface interativa
O fish 4.7.0 traz ajustes sutis, mas impactantes, para usuários diários:
- A função
prompt_pwdagora remove caracteres de controle automaticamente, evitando distorções visuais em prompts personalizados. - Eventos de repintura (ex.: alterações em variáveis de cor ou chamadas via
commandline -f repaint) não reiniciam mais o pager de conclusões nem descartam estados transitórios da UI (#12683). - A variável
fish_color_valid_pathpassa a respeitar cores de fundo e sublinhado — essencial para temas acessíveis e terminais com suporte a atributos avançados (#12622). - O editor integrado
funcedpreserva o trabalho mesmo após múltiplos erros de análise sintática, desde que não haja novas edições no arquivo. - Completions de diretórios são ordenadas de forma previsível, eliminando surpresas em navegação por
cd(#12695). - O atalho
Alt+oagora abre arquivos somente leitura sem exigir permissões adicionais (#12671). - O histórico em memória usado em modo privado (
set fish_history) não é mais compartilhado com o builtinread, garantindo isolamento de sessões sensíveis (#12662).
🛠️ Melhorias de infraestrutura e compatibilidade
- Histórico de comandos não é mais corrompido com bytes nulos (
\0) ao receber sinaisSIGTERMouSIGHUP— correção de um problema antigo reportado em #10300. - A ferramenta
fish_update_completionspassa a interpretar corretamente escapes de controle\X'...'usados pelo groff, permitindo geração precisa de completions para páginas de manual geradas porhelp2man1.50+ (como as do coreutils 9.10). - A remoção de entradas de histórico pela interface web-based (
fish_config) tornou-se mais intuitiva e confiável. - Quando
XDG_DATA_DIRSestá vazio, o fish assume o valor padrão, passando a reconhecer automaticamente diretórios como$PREFIX/share/fish/vendor_completions.d(#11349). - Descritores de arquivos internos foram realocados para números ≥10, reduzindo conflitos com scripts que usam FDs baixos.
- Mensagens de erro foram padronizadas, especialmente para subcomandos internos — facilitando depuração e automação (#12556).
🧩 Atualizações para mantenedores e distribuidores
- Ao instalar com CMake, o fish agora respeita corretamente a flag
-DCMAKE_INSTALL_SYSCONFDIR, mesmo quando o diretório global padrão ($PREFIX/etc/fish) existe (#10748). - O script legado
build_tools/update_translations.fishfoi substituído por tarefas nativas docargo xtask gettext {check,new,update}(#12676). - Nova tarefa
cargo xtask shellcheckpermite linting automatizado de scripts shell dentro do ecossistema de build.
📥 Como obter a versão 4.7.0
Para instalação a partir do código-fonte, recomenda-se baixar o pacote comprimido em formato .tar.xz:
fish-4.7.0.tar.xz
Uma assinatura GPG está disponível em fish-4.7.0.tar.xz.asc, verificável com a chave 7A6ED2326511A2ED.
Binários standalone para Linux estão disponíveis para múltiplas arquiteturas em arquivos nomeados como fish-4.7.0-linux-*.tar.xz.
⚠️ Atenção: o arquivo Source code (tar.gz) disponibilizado na página de lançamento não compila corretamente — use exclusivamente o .tar.xz.
👋 Novos e retornados colaboradores
O projeto dá boas-vindas a 12 novos colaboradores:
Armandas Jarušauskas, Daniel D. Beck, Dennis Yildirim, Jaakko Koivisto, Kayce Basques, Nathaniel, Saúl Nogueras, Vishrut Sachan, Yakov Till, cunlem, joveian e r-vdp.
Também celebra o retorno de Bacal Mesfin, Branch Vincent, Daniel Rainer, David Adam, Johannes Altmanninger, Nahor, Peter Ammon, Remo Senekowitsch e xtqqczze.
O fish shell continua sendo uma referência em shells modernos para Linux e macOS — combinando inteligência de completions, sintaxe legível e filosofia user-first. A versão 4.7.0 consolida seu papel como alternativa madura ao bash e zsh, especialmente em ambientes onde produtividade e acessibilidade são prioritárias.