Habilitando busca incremental de comandos no terminal GNU/Linux
Dica publicada em Linux / Comandos
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.
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, 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:
Para habilitar, é só acrescentar:
... 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:
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.
Dica também publicada no Mundo GNU:
Até a próxima!
Nesta pequena e simples dica, mostrarei como habilitar a busca incremental de comandos no terminal GNU/Linux.
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, 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:
Para habilitar, é só acrescentar:
"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char
"\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
Dica também publicada no Mundo GNU:
Até a próxima!
Agora não vou precisar mais usar o caractere "!" toda vez que quiser executar um comando já digitado, o que fica bem mais prático!!!!