Terminal altamente produtivo com Fish

Posted by Vanius on 30 October 2020

Uma das coisas mais frustantes que eu tinha ao usar Linux era a experiência no terminal - por que raios a tecla tab não funcionava como no Windows? Cheguei a criar um doc de configurações para fazer no bash, para conseguir deixar do jeito que eu queria. Mas depois que conheci o Fish, tudo mudou. Ele já traz muitos recursos nativos e com mais algumas configurações fica imbatível. Confira!

Esse guia de passos é baseado no Fedora, mas possivelmente funciona em outras distros baseadas no RedHat.

Instalação

Primeiramente recomendo o terminal Terminator, que possui recursos bem bacana como abas, splits, customizações de cores, etc. Para instalar:


    sudo dnf install terminator

Para instalar o Fish deve rodar:


    sudo dnf install fish
    sudo dnf install util-linux-user

Os seguintes comandos tornam o Fish o shell padrão:


    echo /usr/bin/fish | sudo tee -a /etc/shells
    chsh -s /usr/bin/fish

Aqui você já pode dizer olá para o Fish!

terminator-fish

Tema

Existe o gerenciador de pacotes visuais do Fish, Oh My Fish (OMF). Para instalar:

    
    curl -L https://get.oh-my.fish | fish

É recomendável instalar o pacote de fontes Powerline:


    sudo dnf install powerline powerline-fonts

No OMF recomendo instalar o tema Agnoster:


    omf install agnoster 

Em alguns momentos o Fish insere um sublinhado, que eu particularmente acho feio. Pode ser desabilitado por:


    set fish_color_valid_path --bold

Gerenciador de pacote Fisher

Alguns recursos do Fish são instalados pelo gerenciador de pacote dele, o Fisher:


    curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

Bookmark path

Um recurso muito bacana é permitir pular para diretórios através de alias (também conhecido como jump ou book marks). Para o Fish existe o To. Para instalar podemos fazer pelo Fisher:


    fisher add joehillen/to-fish

Histórico

Outro recurso legal é o histórico, através da tecla ctrl+r. Para isso existe o fzf e é necessário instalar dois componentes:


    git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    ~/.fzf/install

    fisher add jethrokuan/fzf

Conclusão

Pronto. Se tudo deu certo você terá um terminal com recurso de completamento inteligente. O tema Agnoster identifica quando um diretório é versionado pelo git, então exibe o nome do branch e indicador se o diretório está modificado. O histório é um recurso fantástico que permite navegar com as teclas e também permite pesquisar.