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

标签 bash variables 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...

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

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

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

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

最佳答案

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

vim $i[tab]

将 $i 扩展为相对路径

(同时 Oh My Zsh 非常适合自定义 zsh)

关于没有变量扩展的 bash 选项卡完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4937626/

相关文章:

linux - 如何循环直到 IP :port is not responding

C++11为什么 'decltype(x)'和 'decltype((x))'的类型不同?

在二维网格上模拟膨胀气体的算法

json - jq '.' 格式化的json文件使用jq恢复为原始json格式

linux - 递归文件移动

linux - bash 文件中的单词列表

android - Flutter APK 大于 100 MB

java - java中如何在其他类中使用公共(public)类中定义的变量?

javascript - 检查 javascript 中是否存在变量;不起作用

flutter - 如何在 Flutter 中为 ExpansionPanel 添加背景颜色