我已将别名设置为 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