¿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!


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.


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.


2

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

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.