Shell pula para o diretório

1

Editores de texto como vim e emacs têm plugins como ace jump, avy, que permitem que você pressione um caractere, então ele destacará todas as instâncias desse caractere com um keybind temporário, então você pode pressionar o keybind para pular diretamente para ele

Gostaria de saber se existe algo semelhante para shells (por exemplo, bash) para navegar rapidamente para um diretório específico sem ter que cd através de diretórios? Talvez algo que liste diretórios até uma certa profundidade, aguarde um caractere de entrada, destaque instâncias do caractere com uma sequência de teclas e cd quando a sequência for pressionada?

Se algo assim já não existe, quão fácil seria criar?

    
por Simon 26.05.2017 / 06:05

2 respostas

2

fzf faz isso. É um auxiliar de seleção de conclusão / arquivo. Seu uso básico é para selecionar arquivos de uma lista grande (por exemplo, find . -type f | fzf > selected ).

Depois de instalá-lo e carregá-lo no seu shell, você pode pressionar Alt C para abrir uma janela na qual você pode digitar uma string difusa para encontrar diretórios. Quando você seleciona um e pressiona enter, fzf irá cd para esse diretório.

Para autocompletar nomes de arquivos da mesma maneira, você pode pressionar Ctrl T . Para pesquisar o histórico, pressione Ctrl R .

    
por 26.05.2017 / 10:09
2

Talvez não seja exatamente o que você quer, mas acho que vale a pena tentar WCD . Ele cria um "banco de dados" (um único arquivo de texto) que armazena a lista de diretórios. O comando wcd foo mostra uma lista dos diretórios que contêm foo e você pode escolher um deles.

Outra opção similar é o autojump .

    
por 26.05.2017 / 21:39