2 pontos por GN⁺ 2025-02-28 | 1 comentários | Compartilhar no WhatsApp
  • Fish é um shell de linha de comando amigável para o usuário para macOS, Linux e outros sistemas operacionais da família Unix
  • A partir da versão 4.0.0, o código principal do Fish foi portado de C++ para Rust
    • Isso traz grandes mudanças nas dependências e na forma de build, mas não tem impacto direto para os usuários
  • Mudanças incompatíveis:
    • Introdução de uma nova notação de teclas para o comando bind
    • ctrl-c agora chama clear-commandline, e o comportamento anterior pode ser usado com cancel-commandline
    • Os resultados da função random com base no valor da seed podem ser diferentes das versões anteriores
    • Variáveis na posição de comando agora não podem mais ser expandidas como palavras-chave de subcomando
    • functions --handlers agora lista os handlers na ordem em que foram definidos
    • O recurso qmark-noglob agora vem ativado por padrão

Melhorias e correções

  • Protocolo de teclado: suporte ao modifyOtherKeys do XTerm e ao protocolo de teclado do kitty
  • Binários auto-instaláveis: agora é possível compilar o fish como um binário auto-instalável
  • Histórico de comandos: a função fish_should_add_to_history permite decidir quais comandos serão adicionados ao histórico
  • Função de desfazer: o histórico é mantido mesmo após a execução de comandos
  • Restrição de abreviações: agora é possível expandir abreviações apenas para comandos específicos

Recursos obsoletos e removidos

  • commandline --tokenize foi substituído por commandline --tokens-expanded
  • A especificação de nomes de teclas com a sintaxe bind -k foi descontinuada
  • O modo de colagem foi removido

Melhorias em scripting

  • Novo comando de histórico: history append permite adicionar comandos ao histórico sem executá-los
  • Novo redirecionamento: `

1 comentários

 
GN⁺ 2025-02-28
Comentários do Hacker News
  • O ponto mais interessante do Fish 4.0 é que agora ele foi escrito em Rust
    • Quero verificar por testes se há alguma diferença perceptível
  • Dizem que não haverá impacto direto para o usuário
    • Reescreveram o núcleo do Fish, mas quase tudo funciona da mesma forma
  • Fico curioso sobre qual é a maior desvantagem para quem mudou para o shell Fish
    • Quando você se acostuma com ele no seu sistema, mas precisa usar Bash ou Zsh nos servidores da empresa
    • Se vai migrar de Bash para Fish, talvez também valha considerar migrar para Nushell
  • Como usuário de Zsh, quero experimentar o Fish
    • Estou adicionando plugins ao Zsh para fazê-lo funcionar como o Fish
  • Se você usa Homebrew, o Fish ainda não está disponível
    • Deve ser adicionado em breve
  • Usei o Fish por vários anos, principalmente por causa do excelente autocompletar
    • O sistema simplificado de temas/prompt e o gerenciamento de plugins com oh-my-fish também são bons, mas secundários
  • Os outros recursos do Fish que não são compatíveis com Bash são incômodos
    • Especialmente o gerenciamento de variáveis de ambiente é problemático
    • Em princípio, é um design melhor que o do Bash, mas a diferença não é tão grande e, como uso isso com pouca frequência, preciso reaprender toda vez
    • É inconveniente ao copiar e colar instruções de configuração da documentação
  • Fico curioso sobre como foram feitos os ajustes de desenvolvimento para a migração para Rust
    • Só vejo um único PR (#9512)
  • Fico curioso sobre quanto o binário aumentou de tamanho depois da reescrita em Rust
  • clear-commandline é um recurso interessante
    • Há dificuldade em manter a consistência entre Windows e macOS
    • Não consigo usar o Karabiner direito
    • Vou verificar a configuração padrão de cancel-commandline