Tab 完成第二个命令

Tab complete second command

我正在尝试在命令的第二个原子上完成制表符。

man do<tab complete>

在 bash 中,这可以用 complete -cf <command> 完成,但我不确定这在 ksh 中是否可行。有什么想法吗?

这取决于您使用的 ksh 口味。

在 AT&T ksh88 以及 pdksh 和衍生产品中(mksh、NetBSD ksh、OpenBSD ksh / oksh),这是不可能的(除了 really weird hacks。他们(我可以说保证 mksh 因为我是它的开发者)完成第二个(和后续行动,除了在右括号 [=18 之后) =]) 命令的单词始终作为 cwd 相对路径名(“文件”简化)。

AT&T ksh93 AT&T 93u+20120801 的最新版本没有可编程制表符完成;但是,如 in the manpage 所示,Red Hat situ 下的新开发引入了它。你不太可能在任何稳定发行版中找到它,但是,他们最近发布了他们的第一个稳定 post-fork 版本。