1

我正在将 Google Cloud SDK 命令行自动完成功能移植到fish shell。当我有一个包含多个参数的明确答复时:

A)当我在 ''s 或 ""s 内的完整命令中指定函数调用时,命令使用所有这些参数完成,但空格被转义(\),例如:> complete ... -a '(__fun) '

B)或者如果我不这样做(只是:-a(__fun)),那么只有回复的第一个参数进入完成,所有其他参数“迷路”

是否可以在鱼完成中一次回复多个参数?

4

1 回答 1

0

可以通过多种方式完成。但是,您将不得不对其进行一些修改,因为荒谬的鱼说它不是为此而设计的。最简单的方法是发布您自己的包装函数,该函数可以获取转义的输出并以有效的方式传递它。但是,它不是很漂亮,并且会与自动建议一起搞砸,除非您也返回并修改历史记录行。

这是我建议的半hacky/半优雅的东西:如果您查找了想要立即完成的args“序列”,则在第一次调用时将尾随args作为对第一个args的描述。一旦该选项被锁定,请删除除此“描述队列”中的第一个选项之外的所有其他选项,继续检查它,只需快速按下 tab-tab-tab-tab 即可。

完成不一定是完美的,在你有足够的历史线可以自动建议接管之前,它们主要是一个小小的帮助,imo。

于 2016-06-28T20:52:14.977 回答