Cygwin 制表符完成不需要';t带转义空间的完全路径

Cygwin 制表符完成不需要';t带转义空间的完全路径,cygwin,bash-completion,Cygwin,Bash Completion,有一段时间,我遇到了一个恼人的bash完成问题,即当路径包含转义空间时,它不起作用。例如,我在/cygdrive/c中输入 $ cd Pro 按Tab键完成“cd程序”,按两次显示带有此“程序”前缀的所有目录: 我想cd到“程序文件”,所以我键入 $ cd Program\ (反斜杠后加空格)从现在开始按Tab键不起任何作用。一段时间前它还可以工作,但我无法确定它到底是什么时候停止的。是否有任何关于这可能是什么原因的提示?看起来bash\u completion包有问题。我对cd有您的问题

有一段时间,我遇到了一个恼人的bash完成问题,即当路径包含转义空间时,它不起作用。例如,我在/cygdrive/c中输入

$ cd Pro
按Tab键完成“cd程序”,按两次显示带有此“程序”前缀的所有目录:

我想cd到“程序文件”,所以我键入

$ cd Program\ 

(反斜杠后加空格)从现在开始按Tab键不起任何作用。一段时间前它还可以工作,但我无法确定它到底是什么时候停止的。是否有任何关于这可能是什么原因的提示?

看起来bash\u completion包有问题。我对
cd
有您的问题,但对
ls
等其他程序没有问题。您可以删除该软件包,也可以将
complete-r cd
放入
.bashrc

中。我唯一遇到这种情况的时候是shell认为您的提示不明确。当我在我的系统上执行此操作时,它会正确地选择“程序\文件”,并提示我完成下一部分。是的,它有时似乎有效。例如,如果我在我的home dir中创建一个目录
test\test
,它就完成了。然后,当我添加另一个目录
test\test2
时,它只完成
test\test
,但它不想建议路径的其余部分。删除
test\test
后,
test\test2
的完成再次开始工作。。。怪人在这里工作很好。很抱歉如果删除
bash_completion
包或运行
complete-r cd
,是否有帮助?我在
cd
上遇到了您的问题,但没有像
ls
这样的其他程序,这些更改解决了问题。@是的,我尝试运行
complete-r cd
,它解决了问题。没有必要拆下这个包。如果你写一个答案,我会接受的。谢谢!:)FWIW,将bash完成从1.3升级到1.3.1为我修复了这个问题。
$ cd Program\