7

我在 ~/.bashrc 中导出了一个变量,如下所示(后跟 source ~/.bashrc)

export w=/home/user/workspace/

当我在命令行上时,我尝试通过以下方式访问 $w 的子目录

user$ vi $w/

在此之后,当我按 Tab 键时,会出现一个神秘的反斜杠

user$ vi \$w/

它会禁用进一步的制表符补全。为什么?可能并不vi具体,因为即使使用ls.

运行 Ubuntu 11.04 的 Bash 版本 4.2.24(1)-release (i686-pc-linux-gnu)

编辑 解决方法:在点击选项卡之前点击 Esc+Ctrl+E。

4

1 回答 1

3

Bash 有点聪明,但没那么聪明。它无法扩展您的变量,然后制表符完成到任何评估的目录。所以这不是反斜杠“禁用”选项卡完成,而是bash找不到任何完成建议的事实。

鉴于如果您的路径中确实有环境变量,补全不会对您有所帮助,补全可以帮助您的唯一方法是如果您打算输入文字美元符号。我认为 bash 只是过于热心地试图完成某件事。

尽管如此,我还是将其称为错误,因为在您的情况下,它不仅无法完成,而且还会改变您输入的内容的含义。

于 2012-10-09T04:45:14.597 回答