当我输入命令时:
$ perl -Ilib t/mojolicious/patt
TAB + TAB
自动完成工作正常。但是当我使用-d
选项时:
$ perl -Ilib -d t/mojolicious/patt
TAB + TAB
它不起作用。为什么?我该如何解决这个问题?
来自评论的UPD
$ complete -p perl
bash: complete: perl: no completion specification
$ complete -D -p
complete -F _completion_loader -D
$ type _perl
bash: type: _perl: not found
$ type _completion_loader
_completion_loader is a function
_completion_loader ()
{
local compfile=./completions;
[[ $BASH_SOURCE == */* ]] && compfile="${BASH_SOURCE%/*}/completions";
compfile+="/${1##*/}";
[[ -f "$compfile" ]] && . "$compfile" &> /dev/null && return 124;
complete -F _minimal "$1" && return 124
}
答案 0 :(得分:1)
我在Ubuntu 16.04上遇到同样的问题。我刚刚尝试使用Ubuntu 17.10,完成了perl -d te
TAB + TAB 的完美工作。
因此最简单的解决方案是更新您的系统。如果您不能(或不想)这样做,您可以尝试为您的系统获取更新的包。对于Uubuntu,您可以在https://launchpad.net/~mail6543210/+archive/ubuntu/backports尝试PPA。或者您可以从http://bash-completion.alioth.debian.org/获取上游源,并完全取消您的发行版提供的bash-completion。