Pode bash (ou um terminal) auto-complete (tab-complete) do conteúdo do buffer de terminal?

4

Imagine que eu tenho uma sessão bash em um terminal, logo após alguma saída:

$ grep foo *.txt
this.txt: something123 foo
$

Depois desse grep, digamos que meu próximo comando levará something123 como argumento.

Existe alguma ferramenta que me permita separar / completar automaticamente o something123 no prompt? ou seja, autocompletar a leitura do buffer de terminal recente?

Especificamente: desejo poder digitar grep no prompt, alguns caracteres de something123 e o restante de something123 aparecerão, como seria se, por exemplo, something123 era o nome de um arquivo no diretório de trabalho atual.

Edit: Atualmente, estou usando o terminal do xfce4 (no Arch Linux), mas estou aberto a outras pessoas!

    
por wodow 11.07.2012 / 17:38

2 respostas

2

Você poderia fazer isso com um script personalizado, mas, até onde eu sei, isso não é um comportamento interno em qualquer sistema - certamente não com a conclusão da guia.

Consulte o link para obter instruções sobre como codificar algo como este. Aviso: conhecimento detalhado dos comandos bash necessários se você decidir assumir a tarefa de escrever isso sozinho, mas dado que você só quer fazer um certo grep, eu não acho que seria tão difícil.

    
por 11.07.2012 / 19:44
1

Você não diz qual sistema está usando ...

O iTerm2 no Mac OS X fará isso usando o Cmd +; atalho de teclado. Não é bem como concluir a tabulação (você tem que selecionar na lista de conclusão da GUI do terminal antes de enviar qualquer pressionamento de tecla para o processo subjacente), mas ainda assim economiza as teclas digitadas. Veja link .

Eu ficaria surpreso se não houvesse algo semelhante para o Unix.

Esse tipo de comportamento seria, na verdade, mais fácil de implementar diretamente no Windows (um processo com um console pode ter acesso ao seu próprio buffer de rolagem), mas apesar disso, nunca o vi fazer.

    
por 11.07.2012 / 19:58