使用别名调用 xdg-open 自动完成功能时不起作用

使用别名调用 xdg-open 自动完成功能时不起作用

我已将别名设置为 xdg-open 添加alias op="xdg-open"到我的~/.bashrc文件中。

该命令op file.pdf有效,但我无法在键入(例如,op fi按 TAB)时自动完成。

这有点烦人,因为设置别名的目的是为了节省时间。我怎样才能解决这个问题?

答案1

我猜你有bash 完成已安装,它会自动加载它所提供的完成内容对于op命令当您尝试完成以别名开头的命令行时op

您可以通过以下方式避免这种情况:

  • 选择不同的别名(并查看其中的文件/usr/share/bash-completion/completions/以确保选择一个安全的名称);或者

  • 添加complete -o default -o bashdefault op到您的~/.bashrc以指示 bash-completion 不要使用附带的完成(请参阅上面链接的 GitHub 存储库的常见问题解答中的“如何覆盖 bash-completion 附带的完成?”)。

    当然,如果您要为系统上存在完成文件的命令定义别名,则可以使用那里定义的完成函数,而不是将完成重置为其默认行为。但请注意,这可能需要您显式加载完成函数。结果.bashrc片段可能是:

    alias your_alias=aliased_command
    _completion_loader aliased_command
    complete -F completion_function your_alias
    

相关内容