¿Cómo expandir en línea comodín en bash?

10

Recordé que bash puede hacer lo siguiente:

Supongamos que hay 3 archivos: a, b, c en el directorio actual, cuando ingreso:

$> somecommand *

y luego presione una tecla o combinaciones de teclas o una secuencia de teclas, el comodín * en línea se expandió como:

$> somecommand a b c

¡pero no puedo recordar y no puedo googlear la secuencia de teclas! ¡ayuda!

marstone
fuente
55
PruebaCtrl-X *
Stéphane Chazelas

Respuestas:

7

Si no es así, necesitaría vincularse glob-expand-worda una secuencia de teclas. Por lo general, al agregar algo como:

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

a .inputrc.

Para verificar el problema del estado actual, algo como:

bind -P | grep glob-expand-word

Donde el resultado podría ser:

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

Lo que significaría:

Ctrl-x*

Esto también es muy probable que funcione:

Ctrl-xCtrl-*


Eche un vistazo a los bind -Pmanuales de otras sutilezas.

Runium
fuente
3

Parece que estás buscando completar la lista. En la página del 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

Por lo tanto, depende de la función de finalización para algún comando y cómo se completa.

Anthon
fuente
2

Si está usando set -o vien bash, entonces Ctrl-X*no funciona.

En set -o vimodo, debe usar Esc*en su lugar.

JohnGH
fuente
1
Vale la pena señalar que una vez que esté en modo normal, <C-X>*funcionará, pero <C-X>es superfluo y no hace nada. ( <C-X>no disminuye como lo hace en vi.) Si está en modo de inserción, entonces debe usar <Esc>primero.
wchargin
Esto es genial. ¿Cómo se llaman estos? atajos de teclado bash? ¿Existe alguna documentación en la que pueda encontrar más de estos atajos de teclado?
wisbucky
2
@wisbucky: Un poco tarde, pero para cualquier otra persona, GNU Readline es responsable de esto. Cuando tenga un día lento, lea la sección EDITANDO COMANDOS de man readline. He estado usando Bash durante 10 años y todavía estoy aprendiendo otros nuevos.
Soren Bjornstad