小编WBa*_*ang的帖子

如何在自己的别名中镜像自动完成功能(在 14.04 中)

我在 12.04 机器上使用了一堆别名。

例子:

alias pssh="tsocks ssh"
alias pscp="tsocks scp"
alias prdp="tsocks xfreerdp  ..........SOMETHING ...."
Run Code Online (Sandbox Code Playgroud)

这些别名是对常规 linux 命令(scp、ssh 等)的修改,因此我希望这些别名具有与其原始对应项相同的自动完成规则。我不想编写自己的规则,因为常规命令的规则非常好。

在 12.04 中,以下内容完美运行:

complete -F _ssh pssh
complete -F _scp pscp
complete -F _ssh prdp
Run Code Online (Sandbox Code Playgroud)

这在 14.04 中不起作用。如果我尝试自动完成,我会收到以下错误:

bash: completion: function `_ssh' not found
Run Code Online (Sandbox Code Playgroud)

如果我在尝试 pssh 之前在 ssh 上自动完成,一切正常。据我所知,这是因为自动完成规则在使用之前没有加载。在加载 ssh 的自动完成规则之前,我的规则无效并导致错误。

如何解决此问题,如何正确地将别名挂接到为常规 linux 命令定义的自动完成规则中?

bash alias auto-completion 14.04

6
推荐指数
1
解决办法
808
查看次数

标签 统计

14.04 ×1

alias ×1

auto-completion ×1

bash ×1