On Wed, May 23, 2012 at 01:11:27PM +0200, Vincent Lefevre wrote: > It seems that $COMP_WORDBREAKS annoys users when filenames contain > one of its characters:
[...] > Unsetting $COMP_WORDBREAKS is not a solution, as completion would no > longer work in contexts where such characters are word separators. indeed, it's not On Thu, May 24, 2012 at 03:16:40PM -0400, Chet Ramey wrote: > The whole raison d'etre for having > it in the first place is to allow the user to specify these things. It's > easy enough to have COMP_WORDBREAKS only contain whitespace and shell > metacharacters. of course but COMP_WORDBREAKS is used in the context of different completion which are kind enough to not alter main user environment. That's why COMP_WORDBREAKS would need to apply in a given "context" ( like the scope of a function being used as a completion :) ) On Wed, May 23, 2012 at 01:11:27PM +0200, Vincent Lefevre wrote: > How about the following behavior when the user types [TAB]? > > 1. Try to complete the whole word, ignoring $COMP_WORDBREAKS. > 2. If there are no matches, take $COMP_WORDBREAKS into account > like now. See: https://lists.gnu.org/archive/html/bug-bash/2011-05/msg00148.html [thread follow-up]: https://lists.gnu.org/archive/html/bug-bash/2011-06/msg00032.html The patch in the above thread allowed COMP_WORDBREAKS to be set on a completion basis using a newly created `complete` -B switch. It uses the proper hook for this task but as been considered (probably rightfully) "heavyweight". It would needs a strong knowledge of the codebase (and hook definition) in order to add such a feature in an elegant manner. regards