
Editores de texto como vim e emacs têm plug-ins como ace jump, avy, que permitem que você pressione um caractere, então ele destacará cada instância desse caractere com um atalho de teclado temporário, então você pode pressionar o atalho de teclado para pular diretamente para ele
Gostaria de saber se existe algo assim para shells (por exemplo, bash) navegar rapidamente para um diretório específico sem precisar cd
passar por diretórios? Talvez algo que liste diretórios com uma certa profundidade, espere por um caractere de entrada, destaque instâncias de caracteres com uma sequência de teclas e cd
entre nele quando a sequência for pressionada?
Se algo assim ainda não existisse, quão fácil seria criá-lo?
Responder1
fzf
faz isso. É um auxiliar difuso de conclusão/seleção de arquivo. Seu uso básico é selecionar arquivos de uma lista grande (por exemplo, find . -type f | fzf > selected
).
Depois de instalá-lo e carregá-lo em seu shell, você pode pressionar AltCpara abrir uma janela na qual você pode digitar uma string difusa para localizar diretórios. Quando você seleciona um e pressiona enter, o fzf irá cd
para esse diretório.
Para preencher automaticamente os nomes dos arquivos da mesma maneira, você pode pressionar CtrlT. Para pesquisar o histórico, pressione CtrlR.
Responder2
Talvez não seja exatamente o que você quer, mas acho que vale a pena tentarWCD. Ele constrói um "banco de dados" (um único arquivo de texto) que armazena a lista de diretórios. O wcd foo
comando mostra uma lista dos diretórios que contém foo
e você pode escolher um deles.
Outra opção semelhante ésalto automático.
Responder3
Existem vários shells e extensões de shell que suportampreenchimento automático de caminho parcialepeixeé um deles
Por exemplo, cd /v/l/fsck
Tabirá converter o caminho para /var/log/fsck/
. cd /u/s/appl
Tabexpandirá o caminho para/usr/share/applications/
Algumas outras alternativas:
Veja também