Autocomplete 允许在fish shell中同时返回多个参数作为完成回复

Autocomplete 允许在fish shell中同时返回多个参数作为完成回复,autocomplete,fish,tab-completion,completion,Autocomplete,Fish,Tab Completion,Completion,我正在将Google Cloud SDK命令行自动完成功能移植到fish shell。当我有一个带有多个参数的明确答复时: A) 如果在“s”或“s”内的complete命令中指定函数调用,则命令将使用所有这些参数完成,但空格将被转义(\),例如:>complete-a'(____;u fun)' B) 或者如果我不这样做(只是:-a(_-fun)),那么只有回复的第一个参数进入完成,而所有其他参数“丢失” 在fish补全中是否可以同时使用多个参数进行回复?可以通过多种方式完成。不过,你必须对它

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

A) 如果在“s”或“s”内的complete命令中指定函数调用,则命令将使用所有这些参数完成,但空格将被转义(\),例如:>complete-a'(____;u fun)'

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


在fish补全中是否可以同时使用多个参数进行回复?

可以通过多种方式完成。不过,你必须对它稍加修改,因为正如荒谬的菲什所说,它不是为这个而设计的。 最简单的方法是提供您自己的包装器函数,它可以接受转义的输出并以一种有效的方式传递它。虽然不是很漂亮,但如果你不回去修改历史记录行,你会用自动建议来解决问题

我想提出一个半黑/半雅的建议: 如果您已经查找了希望立即完成的参数的“序列”,则在第一次调用时,将尾随的参数作为第一个参数的描述。一旦该选项被锁定,删除除此“描述队列”中的第一个选项以外的所有其他选项,继续查看它,只需快速按tab键即可


完成不一定是完美的,在你有足够的历史记录让自动建议接管之前,它们基本上是一个很小的帮助,我想。

可以通过多种方式完成。不过,你必须对它稍加修改,因为正如荒谬的菲什所说,它不是为这个而设计的。 最简单的方法是提供您自己的包装器函数,它可以接受转义的输出并以一种有效的方式传递它。虽然不是很漂亮,但如果你不回去修改历史记录行,你会用自动建议来解决问题

我想提出一个半黑/半雅的建议: 如果您已经查找了希望立即完成的参数的“序列”,则在第一次调用时,将尾随的参数作为第一个参数的描述。一旦该选项被锁定,删除除此“描述队列”中的第一个选项以外的所有其他选项,继续查看它,只需快速按tab键即可


补全不一定是完美的,在你有足够的历史记录行让自动建议占据主导地位之前,补全基本上是一个小帮助。

fish选项卡补全只扩展到一个参数。我个人的信息是,在什么情况下您会希望同时插入多个参数?例如,当您想要使用“gcloud compute ssh”时,sdk可以使用实例名称--zone和zone来完成它,这非常有用。fish选项卡完成仅扩展为一个参数。我个人的信息是,在什么情况下您会希望同时插入多个参数?例如,当您想要使用“gcloud compute ssh”时,sdk可以使用实例名--zone和zone来完成,这非常有用。我无法理解这一点。由于我现在将compete调用为:complete-x-cgcloud-a'(uu python_argcomplete)),因此我将返回我的u python_argcomplete函数中的选项,并对它们逐一进行回显。根据fish文档,我可以在完整调用中提供一个描述,并使用-d“description”。但这不在函数调用的范围内,因为我可以在函数调用中发出多个选项,所以每个选项都应该有各自的描述。我遗漏了什么吗?这是我能走多远,正如你所建议的那样,没有描述:计划以后添加更多功能耶-d会对所有东西都进行相同的描述。对于个别项目,只需在完成和描述之间加上一个标签,就像comp1\tdesc1\ncomp2\tdesc2\n etcI无法解决这个问题一样。由于我现在将compete调用为:complete-x-cgcloud-a'(uu python_argcomplete)),因此我将返回我的u python_argcomplete函数中的选项,并对它们逐一进行回显。根据fish文档,我可以在完整调用中提供一个描述,并使用-d“description”。但这不在函数调用的范围内,因为我可以在函数调用中发出多个选项,所以每个选项都应该有各自的描述。我遗漏了什么吗?这是我能走多远,正如你所建议的那样,没有描述:计划以后添加更多功能耶-d会对所有东西都进行相同的描述。对于个别项目,只需在完成和描述之间添加一个选项卡,如comp1\tdesc1\ncomp2\tdesc2\n等