在fish shell

时间:2016-06-10 22:49:49

标签: autocomplete fish tab-completion completion

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

A)命令完成时包含所有这些参数但是当我在完成命令中指定函数调用时,空格会被转义(\);或者#34;"""" s,如:>完成...... -a'(__ fun)'

B)或者如果我不这样做(只是:-a(__ fun)),那么只有回复的第一个参数进入完成状态而所有其他参数都会丢失并且#34; ;

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

1 个答案:

答案 0 :(得分:0)

可以通过多种方式完成。不过,你将不得不破解它,因为像ridiculous_fish说它不是为此而设计的。 最简单的方法是运送您自己的包装函数,该函数可以获取转义输出并以可行的方式传递它。但不是很漂亮,除非你回去修改历史记录,否则会自动提醒。

我建议使用半hacky /半优雅的东西: 如果你已经查找了想要立即完成的args的“序列”,那么在第一次调用时,将尾随args作为描述放到第一个。一旦锁定了那个,删除所有其他选项,但是在“描述队列”中的第一个选项,继续浏览它,这只是快速按Tab-tab-tab-tab的问题。

完成不一定是完美的,在你有足够的历史记录,自动建议接管之前,他们大多数都是帮助,imo。