如何为函数启用 bash 自动完成?
How to enable bash auto-completion for a function?
我已经阅读了关于 bash 自动完成 An introduction to bash completion 的教程,我正在尝试为我的一个函数获得与 ssh
已经完成的相同的自动完成(从 .profile
加载);这几乎是一个 别名 .
我想做的是:获得相同的自动完成,默认情况下为 ssh
提供(这是函数 _known_hosts
;做 complete -p | grep ssh
和你将得到 complete -F _known_hosts /etc/init.d/ssh
),并为我自己的函数得到它(它的安装就像你将安装一个别名一样,实际上是 scp
然后 ssh
与原始参数)
这里ssh
的补全函数是_ssh
.
你可以用 complete -p ssh
看到这个(它也应该在你的 grep
输出中)虽然它似乎是自动加载的,所以直到 才会显示在你在那个会话中使用了一次之后。
无论如何,我认为你应该能够将 _ssh
连接到你的函数。
complete -F _ssh myfunc
我已经阅读了关于 bash 自动完成 An introduction to bash completion 的教程,我正在尝试为我的一个函数获得与 ssh
已经完成的相同的自动完成(从 .profile
加载);这几乎是一个 别名 .
我想做的是:获得相同的自动完成,默认情况下为 ssh
提供(这是函数 _known_hosts
;做 complete -p | grep ssh
和你将得到 complete -F _known_hosts /etc/init.d/ssh
),并为我自己的函数得到它(它的安装就像你将安装一个别名一样,实际上是 scp
然后 ssh
与原始参数)
这里ssh
的补全函数是_ssh
.
你可以用 complete -p ssh
看到这个(它也应该在你的 grep
输出中)虽然它似乎是自动加载的,所以直到 才会显示在你在那个会话中使用了一次之后。
无论如何,我认为你应该能够将 _ssh
连接到你的函数。
complete -F _ssh myfunc