bash选项卡完成没有变量扩展?

And*_*ohn 13 variables bash expansion bash-completion

假设我在这里定义了这些变量bashrc:

i='cgi-bin/internal';  
e='cgi-bin/external';  
f='cgi-bin/foo';  
b='cgi-bin/bar';  
ad='cgi-bin/admin';  
#etc...
Run Code Online (Sandbox Code Playgroud)

当我在命令行上使用变量时vim $i/edit_TAB,它将扩展变量并且命令行上的输入变为vim /www/productX/subdomain_x/cgi-bin/internal/edit_(相应于我所在的任何站点)然后我TABTAB获得可能的完成.

没关系,功能不是问题.只是每次看到完整路径而不仅仅是变量的值会变得烦人.

有没有办法不在命令行上扩展bash变量而不影响功能?
是这样做的bash完成吗?

期望的结果$i不会扩展到它的价值(视觉上)或$i扩展到相对路径而不是完整路径.

k10*_*107 1

您可以尝试使用zsh而不是bash. 在 zsh 中,

vim $i[tab]
Run Code Online (Sandbox Code Playgroud)

将 $i 扩展为相对路径

Oh My Zsh也非常适合定制 zsh)