输入'export VARIABLE =〜/'后按<tab>键'VARIABLE ='

HC4*_*ica 3 bash tab-completion

我在bash中遇到以下行为,我觉得很烦人:

  1. 类型 export VARIABLE=~/
  2. 现在我想为路径的下一段自动完成,所以我按<tab>.
  3. Bash clobbers VARIABLE=,只留下export ~/.

为什么会这样?

我的bash版本是4.3.33,OS是Debian测试,终端是Konsole.

ric*_*ici 6

验证$COMP_WORDBREAKS包括=.如果没有,试试这个:

COMP_WORDBREAKS+==
Run Code Online (Sandbox Code Playgroud)

如果在此之后export完成工作令您满意,那么您需要弄清楚启动文件正在发生变化COMP_WORDBREAKS.

例如,如果您已安装node.js,则表示已npm完成脚本(从/etc/bash_completions.d/npm删除=@COMP_WORDBREAKS 中删除).

许多完成脚本有点令人讨厌,会改变全局设置.(例如,标准的Debian/Ubuntu完成脚本启用了extglobshell选项.)

  • 你是对的:我的`COMP_WORDBREAKS`中没有`=`,它是`npm`正在删除它,并重新添加它修复了问题.非常感谢!你知道`npm`删除它的目的是什么? (2认同)