A funcionalidade Ctrl + R para pesquisar para trás através do histórico do shell é fornecida pelo Readline usada pelo Bash. A função correspondente para procurar encaminhar através do histórico é, por padrão, ligada a Ctrl + S .
No entanto, o problema é que o driver de terminal já usa essa combinação de teclas para controle de fluxo : pressionando Ctrl + S para ou pausa o texto sendo impresso no terminal e Ctrl + Q retoma o fluxo de caracteres enviados para o dispositivo terminal.
Estas configurações são ativadas por padrão para a maioria dos dispositivos de terminal em sistemas GNU / Linux, com o resultado de que o Bash / Readline nunca vê a sequência de teclas Ctrl + S capturado pelo driver do terminal e nunca passado para o shell.
Esse comportamento (também chamado de controle de fluxo XON / XOFF ) pode ser desativado executando:
stty -ixon
Agora, a combinação de teclas Ctrl + S será passada para Bash / Readline.
Combinação de teclas alternativas
Se você preferir que o Readline use uma combinação de teclas diferente para pesquisar encaminhamento , use o comando bind
para ativar uma vinculação de chave diferente, por exemplo, Ctrl + F (para encaminhamento). NB: todas as citações são necessárias.
bind '"\C-f": forward-search-history'
Modifique a configuração para manter essas alterações
O controle de fluxo de terminal não é particularmente útil em dispositivos modernos, por isso defendo a execução do seguinte comando sempre que um novo terminal ou dispositivo de pseudo-terminal for iniciado:
stty -ixon
.bashrc
provavelmente seria um bom arquivo de inicialização para executar este comando, pois o arquivo é originado para shells interativos do Bash. Se .bashrc
não for originado por .profile
ou .bash_profle
, o comando stty
acima deverá ser adicionado a qualquer arquivo de inicialização usado para shells de login.
O arquivo de configuração Readline é .inputrc
se você preferir usar uma ligação de chave diferente como Ctrl + F para procurar encaminhar história:
bind "\C-f": forward-search-history