Zoxide e fzf no bash para incrementar o uso do Terminal
O
zoxide e o
fzf são programas externos que são usados junto do shell (terminal) para acelerar a entrada de pastas e listar possibilidades de entradas disponíveis no histórico. Combinando os dois é possível achar comandos e "entradas cd" (de pastas) para deixar o uso do terminal mais agradável. O problema é que implementar isso acaba deixando o usuário preguiçoso mas vamos lá assim mesmo. Isso pode ser feito também no
zsh mas vou mostrar primeiro como fazer no
bash.
No
Debian e agregados:
sudo apt install fzf zoxide
Abra o arquivo ~/.bashrc:
nano ~/.bashrc
Cole dentro, lá no final do arquivo:
eval "$(zoxide init bash)"
Salve e feche o arquivo. Recarregue o bash:
source ~/.bashrc
Agora todas as pastas em que você entrar no terminal usando bash serão guardadas num banco de dados e dota o seu terminal de um "acelerador". Digamos que você já tenha entrado na pasta
.config; basta você digitar sem as aspas "
z .config" (nem precisa ser o .config completo, .conf já serve já que é pasta e não arquivo) e o prompt vai aparecer o
.config mais novo que você entrou. Se digitar
zi config você vai habilitar o modo de procura caso haja mais de uma entrada disponível:
Basta então escolher na listagem qual o que você quer usando as setas de direção. E o interessante é que você não precisa digitar o nome da pasta completo, basta digitar "z pasta ou parte do nome" e o zoxide vai direto na última entrada. A única necessidade é que você já tenha entrado na pasta individualmente via cd anteriormente. E, na listagem, ainda mostra as eventuais subpastas presentes nas entradas como ilustra a imagem acima.
Veja os exemplos:
- z share = Vai entrar na pasta mas recente com a entrada share, por exemplo, /usr/local/share;
- zi share = vai listar as entradas do histórico do bash que possuem "share" e pode ser escolhida a entrada com as setas de direção;
- z local = Mesmo que a pasta exista (por exemplo, /usr/local) se você não tiver entrado nela anteriormente via cd (cd /usr/local) não vai achar nada. O zoxide não completa caminhos sozinho e sim se baseia no histórico do shell;
zi con = Vai listar as pastas já visitadas que tenham "con", como no exemplo abaixo.
Lembrando, a pasta TEM que estar no histórico. Se você tiver entrado na /usr/
local ou /usr/
local/share (atenção ao negrito de ambas) o comando z
local ou
z share vai achar as entradas
MAS NÃO VAI entrar em
z usr pois você não entrou nenhuma vez na pasta /usr individualmente.
Depois de instalado o programa precisa "aprender" as pastas que você entra pois ele "linka" ao ~/.bash_history. Para saber o que o zoxide já "aprendeu", abra o terminal e digite:
zoxide query -l
Devem aparecer algumas entradas de comandos de pastas que você já tenha feito. Se estiver em branco é necessário "ensinar" para já "pegar" o que você já tem. Para acelerar o aprendizado, no terminal:
cat ~/.bash_history \
| sed 's/^: [0-9]*:[0-9]*;//' \
| grep -E '^cd ' \
| sed 's/^cd //' \
| while read -r dir; do
dir="${dir/#\~/$HOME}"
[ -d "$dir" ] && zoxide add "$dir"
done
Pronto, o zoxide já está "esperto" para listar o que está no seu histórico. Se precisar apagar o banco de dados:
rm -rf ~/.local/share/zoxide/db.zo
e refaça o penúltimo comando mostrado aqui para "ensinar" o seu histórico de pastas ao zoxide.
Só pra deixar claro, o "z" é o substituto do "cd", é como um alias para o comando "cd"; o "z" mais o resto faz o zoxide saber que você está querendo entrar em pastas e esse "z" é o zoxide que determina; poderia ser configurado o j, p ou qualquer outra letra mas vamos ficar no z mesmo.
E lembrando:
- z pasta ou nome parcial: entra na mais recente;
- zi pasta ou nome parcial: mostra as pastas acessadas numa lista e que pode ser escolhida a entrada desejada via setas do teclado.
Outras dicas deste autor
Marcando e desmarcando pacotes para atualização, instalação e remoção no Debian e agregados
A compatibilidade do LibreOffice com o Microsoft Office
Instalando fontes via script no Nautilus Scripts no Gnome do Debian 13
Ativando o modo Quake no XFCE4-Terminal
Configurando o Conky para iniciar corretamente no sistema
Leitura recomendada
Boot no openSUSE Tumbleweed demorando demais: erro "A start job is running for Wait for chrony to synchronize system clock" [Resolvido]
Scanner Epson Stylus TX200 no Debian/Ubuntu
Ponto do teclado numérico no X
Limitando taxa de transferência do Slackpkg
Configurar repositório APT local no Debian sem a necessidade de configurar o Apache
Comentários
Nenhum comentário foi encontrado.