我希望能够做到这一点:
cd $HOME/../[TAB]
并得到这个(其中$HOME
作为变量名保持完整):
cd $HOME/../username/
但变量却被扩展了:
cd /home/username/../username/
这在搜索历史记录时对我特别有用。是否有一些选项可以启用此行为,还是需要重写部分脚本bash_completion
?
答案1
这需要修改bash_completion
函数。该行为似乎是函数扩展单词以进行补全的结果。如果您在未加载补全脚本的情况下运行 bash,例如使用bash --norc
,您将看到该行为正是您想要的。
另一方面,使用 zsh,完成功能可以同时提供以下功能:
~ echo $HOME/../
$HOME/../ /home/muru/../
对于的特殊情况$HOME
,您可能想要使用~
,但这对我来说并没有扩展。