16

假设我在我的中定义了这些变量bashrc

i='cgi-bin/internal';  
e='cgi-bin/external';  
f='cgi-bin/foo';  
b='cgi-bin/bar';  
ad='cgi-bin/admin';  
#etc...

当我在命令行上使用变量时,vim $i/edit_TAB它将扩展变量并且命令行上的输入变为vim /www/productX/subdomain_x/cgi-bin/internal/edit_(无论我在哪个站点),然后我TABTAB得到可能的完成。

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

有没有办法在不影响功能的情况下不扩展命令行上的 bash 变量?
是 bash 完成吗?

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

4

3 回答 3

1

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

vim $i[tab]

将 $i 扩展为相对路径

Oh My Zsh也非常适合自定义 zsh)

于 2011-11-13T02:57:55.530 回答
1

我不确定您在 bash 启动脚本中使用了哪些其他设置,但对我来说,以下 bash 命令可以解决问题:

complete -r -v
于 2016-06-15T04:52:09.590 回答
0

使用 shopt -u progcomp 对我有用,在此之后选项卡不再扩展变量。商店文档 https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html

于 2017-05-05T14:34:01.070 回答