【发布时间】:2015-06-15 23:28:06
【问题描述】:
我在 bash 中遇到以下我觉得很烦人的行为:
- 输入
export VARIABLE=~/ - 现在我想自动完成路径的下一段,所以我按
<tab>。 - Bash 破坏了
VARIABLE=,只留下了export ~/。
为什么会这样?
我的bash版本是4.3.33,操作系统是Debian testing,终端是Konsole。
【问题讨论】:
-
您是否启用了任何自定义的 bash 完成支持?你使用的是什么版本的 bash-completion 包?
-
我的 bash 完成包是
1:2.1-4.1。如何判断我是否有自定义完成支持? -
我无法在我的环境中重现您的问题。
-
在我的 debian 不稳定系统上使用相同版本的 bash 和 bash-completion 包,我也无法重现此问题。如果您运行
exec 9>/tmp/trace.out; BASH_XTRACEFD=9; set -x; export VARIABLE=~/<tab>; set +x; unset -v BASH_XTRACEFD,您会在/tmp/trace.out文件中看到什么? -
@EtanReisner:没错。在我的系统上,
/etc/bash_completion.d/npm(来自nodejs包)正在删除“=”。非常粗鲁,就是这样。我应该更仔细地查看 bash 源代码;我只检查了明显的启动文件。 (默认值在bashline.c,变量bash_completer_word_break_characters。)
标签: bash tab-completion