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!
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.