如何在标签完成期间让bash停止转义$?

Modified on: Sat, 09 Jun 2018 05:51:53 +0800

我在命令行上有这个:

 ln -sf $PWD/wine-

然后我点击tab来完成文件名。在早期版本的Ubuntu中,这可以很好地完成wine-文件名(并且因为副作用$ PWD将在那时扩展)。但现在它转入

 ln -sf \$PWD/wine-

这不是我的意思,并没有完成任何事情,因为文件不是从$开始。

如何将完成恢复到较少破损的行为?

set告诉我这些是我当前的设置:

BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor

作者:muru,keturn

最佳答案

我发现bash版本> = 4.2.29有一个新的direxpand shopt设置。 (如果您查看新的bash,请参阅man docs/bash.1,或参见第8951行的bash.1

如果使用Quantal Quetzal 12.10或以其他方式获取(或检查并构建)新的bash,则:

shopt -s direxpand

给我我想要,需要和爱的行为。

解决方法:与此同时,CTRL-ALT-e而非tab也可以实现我想要的功能。但是很尴尬。

BTW,bash tab变量扩展问题?的线程.bug“> gnu.bash.bug。从阅读它们,我在这里找到了信息。


相关问答

添加新评论