Isso porque :
está entre a lista de caracteres que readline
considera como delimitadores de palavras para a conclusão de palavras (que bash
expõe na variável $COMP_WORDBREAKS
shell).
Depois:
COMP_WORDBREAKS=${COMP_WORDBREAKS/:}
(para remover :
de $COMP_WORDBREAKS
), Ctrl + X * deve funcionar.
Alguém poderia argumentar que :
não deveria estar nessa lista em primeiro lugar pela mesma razão que é usada em classes de caracteres, mas eu suponho que a lógica é que você quer ser capaz de usar a conclusão em coisas como :
PATH=~/bin:/usr/locTab
E esse mecanismo é muito grosseiro (você notará que Ctrl + X * em 'a'*
não funciona nem mesmo se você remover '
de $COMP_WORDBREAKS
) para acomodar ambos, é um compromisso. Veja zsh
, um shell com recursos de edição muito mais avançados, que funciona nos dois casos aqui.