Habilitando busca incremental de comandos no terminal GNU/Linux


Olá a todos!

Nesta pequena e simples dica mostrarei como habilitar a busca incremental de comandos no terminal GNU/Linux.

Autor: Leandro Nkz

O que é busca incremental?

O próprio terminal já fornece uma busca parecida. É só teclar a combinação Ctrl + r e digitar o comando que se deseja buscar. Assim, ele exibirá as últimas ocorrências do termo digitado.

Mas a busca incremental de que falo é muito mais simples e útil.

Eu descobri este recurso utilizando o Vim. Se corretamente habilitada (é só utilizar o parâmetro set nocompatible no vimrc), para utilizar um comando do histórico é só digitar o começo do comando e teclar seta pra cima/seta pra baixo para navegar nas ocorrências encontradas.

De tanto usar o Vim, eu acabei pegando a estranha mania* de, ao digitar algum comando no terminal, tentar completar utilizando a seta pra cima. É claro que não funciona, uma vez que a seta pra cima serve apenas para ir ao último comando digitado.

* Aliás, esta não é a única mania que se pega ao utilizar constantemente o Vim/Gvim/vi. As mais frequentes são teclar “Esc” toda vez que se acaba de digitar algo em qualquer lugar (inclusive aqui no blog, rs), ou tentar fechar a janela do terminal com um :wq, rsrs.

De tanto tentar completar um comando no terminal com a seta pra cima, pensei: “Deve existir alguma configuração que possa habilitar isso!”.

Foi só pesquisar um pouco que encontrei:

http://codeinthehole.com/writing/the-most-important-command-line-tip-incremental-history-searching-with-inputrc/

Para habilitar é só acrescentar:

"e[A": history-search-backward
"e[B": history-search-forward
"e[C": forward-char
"e[D": backward-char

No final do arquivo /etc/inputrc (assim, as mudanças surtirão efeito em todos os usuários), e fechar/abrir o terminal novamente.

Agora, para testar, basta começar a digitar um comando qualquer e teclar seta pra cima/seta pra baixo para navegar nas últimas ocorrências dele.

Por fim, para termos um histórico bem completo, basta aumentarmos a capacidade dele, acrescentando (ou editando) no arquivo ~/.bashrc:

export HISTSIZE=10000

Assim, o terminal irá armazenar os últimos 10.000 comandos digitados (o padrão é 500).

Lembrando que este recurso só funciona se o seu readline estiver no modo de compatibilidade com Emacs (o que é o padrão).

Testado no bash e sh.

Referências:

http://codeinthehole.com/writing/the-most-important-command-line-tip-incremental-history-searching-with-inputrc/

Até a próxima!

Anúncios
Habilitando busca incremental de comandos no terminal GNU/Linux

4 comentários sobre “Habilitando busca incremental de comandos no terminal GNU/Linux

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s