【问题标题】:Why filename autocompletion do not work?为什么文件名自动完成不起作用?
【发布时间】:2018-03-23 09:43:04
【问题描述】:

当我输入命令时:

$ perl -Ilib t/mojolicious/pattTAB+TAB

自动完成工作正常。但是当我使用-d 选项时:

$ perl -Ilib -d t/mojolicious/pattTAB+TAB

它不起作用。为什么?我该如何解决这个问题?

UPD来自 cmets

$ 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
}

【问题讨论】:

  • 为我工作。 rpm -qf /usr/share/bash-completion/completions/perlbash-completion-2.7-2.1.noarch
  • complete -p perl 的输出是什么?
  • @EmilyE.: bash: complete: perl: no completion specification
  • 那么complete -D -p的输出呢?
  • @EmilyE.: complete -F _completion_loader -D

标签: bash perl autocomplete


【解决方案1】:

我在 Ubuntu 16.04 上遇到了同样的问题。我刚刚在 Ubuntu 17.10 上尝试过,perl -d teTAB+TAB 的完成工作完美无缺。

因此,最简单的解决方案是更新您的系统。如果您不能(或不想)这样做,您可以尝试为您的系统获取更新的软件包。对于 Uubuntu,您可以在 https://launchpad.net/~mail6543210/+archive/ubuntu/backports 尝试 PPA。或者您可以从 http://bash-completion.alioth.debian.org/ 获取上游源并完全停用您的发行版提供的 bash-completion。

【讨论】:

  • 这回 [port](sudo add-apt-repository ppa:mail6543210/backports) 不支持我的系统。 This PPA does not support xenial。我有Linux Mint 18.3
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2014-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多