Como obter conclusões / sugestões em tempo real no terminal Linux? [fechadas]

4

Eu gostaria de ter algo semelhante a everything no windows (usando locate ): toda vez que eu pressiono uma tecla, a lista de arquivos que corresponde às entradas atuais é atualizada imediatamente.

Eu estou querendo saber se é possível fazer a conclusão de texto em tempo real no terminal e como devo fazer isso?

Para deixar isso mais claro, suponha que eu tenha esta função implementada como "foo", então quando eu digito foo a e bato TAB na linha de comando, ele deve dar uma lista de todos os arquivos com nome contendo a , então se eu continuar a digitar b (agora o comando se torna foo ab ), a lista de arquivos automaticamente (sem necessidade de acertar qualquer outra coisa) será atualizada para aqueles contendo ab e assim por diante.

    
por username123 17.12.2015 / 01:00

2 respostas

3

Este Unix & amp; Publicação no Linux descreve o que você quer:

  

... Eu encontrei uma ótima ferramenta universal:    localizador difuso de linha de comando .

     

Ele basicamente permite que você localize arquivos "fuzzy-find" (confira o rich gif   animação pelo link acima), mas também permite alimentar arbitrariamente   dados de texto para ele e filtrar esses dados. Então, a ideia dos atalhos é   simples: tudo o que precisamos é manter um arquivo com caminhos (que são   atalhos), e fuzzy-filter este arquivo. Veja como fica: nós digitamos   Comando cdg (de “cd global”, se você quiser), obtenha uma lista de nossos   favoritos, escolha o necessário com apenas alguns toques de tecla e pressione   Entrar. O diretório de trabalho é alterado para o item escolhido:

     

     

É extremamente rápido e conveniente: geralmente eu digito de 3 a 4 letras   do item necessário, e todos os outros já foram filtrados.

Pode não ser o que você está procurando, mas o editor do Vim com o plug-in CtrlP pode ser usado para isso:

Você precisará instalar um dos vim , vim-nox , vim-gnome , vim-gtk ou vim-athena para que isso funcione. As instruções de instalação do CtrlP são fornecidas em seu site :

  
  1. Clone o plug-in em um diretório separado:

    $ cd ~/.vim
    $ git clone https://github.com/kien/ctrlp.vim.git bundle/ctrlp.vim
    
  2.   
  3. Adicione ao seu ~ / .vimrc:

    set runtimepath^=~/.vim/bundle/ctrlp.vim
    
  4.   
  5. Execute na linha de comando do Vim:

    :helptags ~/.vim/bundle/ctrlp.vim/doc
    
  6.   
  7. Reinicie o Vim e verifique :help ctrlp.txt para obter instruções de uso e detalhes de configuração.
  8.   

Se você nunca usou o Vim antes, pode ser um pouco intimidante. Corra vimtutor para ter uma ideia.

    
por muru 17.12.2015 / 01:34
0

Você pode escrever seus próprios scripts de conclusão para o seu shell.

Por exemplo, bash usa scripts / funções de shell simples para conclusão. Instale bash-completions se você ainda não o fez e dê uma olhada em /usr/share/bash-completion/completions para alguns exemplos.

No seu script, você poderia simplesmente chamar locate para obter uma lista de correspondências e retorná-las.

    
por kraxor 18.12.2015 / 12:12