How to get bash to stop escaping $ during tab completion?
I've found that bash versions >= 4.2.29 have a new direxpand
shopt setting. (See man docs/bash.1
if you check out a new bash, or see bash.1 from line 8951)
If one uses Quantal Quetzal 12.10 or otherwise gets hold of (or checks out and builds) a new bash, then:
shopt -s direxpand
Gives me the behavior I want, need and love.
Workaround: In the meantime, Ctrl+Alt+E instead of Tab does what I want too. But is awkward.
BTW, There are several threads called "bash tab variable expansion question?" in gnu.bash.bug. From reading them, I found the info here.
shopt -u progcomp
This fixed it for me, it also removed a lot of "intelligent" completion options which I have found get in the way by not completing files that I know are there because the stupid thing thinks I don't want them as arguments to a particular command. ARRRGH
search _filedir()
in the top level bash_completion script and change the line
compopt -o filenames 2>/dev/null
to
compopt -o filenames -o noquote 2>/dev/null