TAB自动完成功能如何找到要完成的选项?


Answers:


22

根据命令:

  • 可能有人编写了一个函数来生成可能的参数完成,包括选项。您可以在以下/etc/bash_completion.d/*位置(或某些系统上的其他位置)找到某些命令的功能。这些功能与注册的内置的(如告诉Bash调用函数时,按上一个命令)。他们使用内置命令告诉bash“这是可能的补全”。complete complete -F _find find_findTabfindcompgen
  • 对于某些命令,bash将使用参数调用该命令--help并解析输出。此类命令可以通过complete内置命令注册complete -F _longopt ls_longopt实际上是完成生成函数,它恰好解析命令的输出而不是使用固定列表。(还有其他更专业的完成功能可以解析命令的输出以生成可能的完成;请/etc/bash_completion.d/*查看示例。)
  • 对于诸如别名之类的东西,完成功能会在bash的内部表中查找它们。该complete内置有该选项,例如-A用于别名。

10

看一下文件

/ etc / bash_completion

并观察目录中的文件:

/etc/bash_completion.d

您会找到答案。


2

bash完成包在Debian和Ubuntu中提供了对bash完成的支持。您通常还需要在bash完成文件中取消注释/etc/bash.bashrc和/或.bashrc提供源。以下是来自/etc/bash.bashrc

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

为此工作。我通常都不会评论它。在Debian中处理交互式/登录Shell有点混乱。

类似的注释大概适用于其他发行版,尽管默认情况下它们可能启用源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.