Como inline expandir curinga no bash?

10

Lembrei que o bash pode fazer o seguinte:

Suponha que haja 3 arquivos: a, b, c no diretório atual, quando insiro:

$> somecommand *

e, em seguida, pressione uma tecla ou combinações de teclas ou uma sequência de teclas, o curinga * online expandido como:

$> somecommand a b c

mas não consigo me lembrar e não consigo pesquisar a sequência de teclas no Google! Socorro!

pedra preciosa
fonte
5
TenteCtrl-X *
Stéphane Chazelas

Respostas:

7

Caso contrário, você precisará vincular glob-expand-worda uma sequência de teclas. Normalmente, adicionando algo como:

"\C-x*": glob-expand-word

para .inputrc.

Para verificar a questão do status atual, algo como:

bind -P | grep glob-expand-word

Onde o resultado pode estar:

glob-expand-word can be found on "\C-x*".

O que significaria:

Ctrl-x*

Isso provavelmente também funciona:

Ctrl-xCtrl-*


Dê uma olhada bind -Pe manual (s) para outras informações.

Runium
fonte
3

Parece que você está procurando a conclusão da lista. Na página de manual para bash:

 COMP_TYPE
     Set to an integer value corresponding to the type of completion
     attempted  that caused a completion function to be called: TAB,
     for normal completion, ?, for listing completions after succes
     sive  tabs, !, for listing alternatives on partial word comple
     tion, @, to list completions if the word is not unmodified,  or
     %,  for  menu  completion.   This variable is available only in
     shell functions and external commands invoked by  the  program
     mable completion facilities

Portanto, depende da função de conclusão, para algum comando, como isso é concluído.

Anthon
fonte
2

Se você estiver usando set -o vino bash, Ctrl-X*não funcionará.

No set -o vimodo, você precisa usar Esc*.

JohnGH
fonte
1
Pode valer a pena notar que, quando estiver no modo normal, <C-X>*funcionará, mas <C-X>é supérfluo e não faz nada. ( <C-X>não diminui como no vi.) Se você estiver no modo de inserção, precisará usar <Esc>primeiro.
precisa saber é
Isso é ótimo. Como eles são chamados? atalhos do teclado bash? Existe alguma documentação em que posso encontrar mais desses atalhos de teclado?
23616 wisbucky
2
@wisbucky: Um pouco tarde, mas para qualquer outra pessoa, o GNU Readline é responsável por isso. Quando você tiver um dia lento, leia a seção EDITANDO COMANDOS man readline. Uso o Bash há 10 anos e ainda estou aprendendo novos.
Soren Bjornstad 30/04/19