Zsh fish在不指定目录结构的情况下自动完成文件路径

Zsh fish在不指定目录结构的情况下自动完成文件路径,zsh,fish,zsh-completion,Zsh,Fish,Zsh Completion,我最近切换到fish shell,想知道它是否可以像在zsh中那样自动完成文件路径,而不指定它的父目录。对于foo/bar/file.ext中的文件,在zsh中,我可以键入open.///file并自动完成以open./foo/bar/file.ext(假设没有其他类似命名的文件或目录位于同一级别)。当我在fish中执行相同的操作时,自动完成程序无法找到该文件。有没有办法在fish中启用此功能?与zsh的方式不同。Fish有一个特殊的**glob,它递归到目录中。自动完成逻辑识别并处理它。因此,

我最近切换到fish shell,想知道它是否可以像在zsh中那样自动完成文件路径,而不指定它的父目录。对于
foo/bar/file.ext
中的文件,在zsh中,我可以键入
open.///file
并自动完成以
open./foo/bar/file.ext
(假设没有其他类似命名的文件或目录位于同一级别)。当我在fish中执行相同的操作时,自动完成程序无法找到该文件。有没有办法在fish中启用此功能?

与zsh的方式不同。Fish有一个特殊的
**
glob,它递归到目录中。自动完成逻辑识别并处理它。因此,您可以执行
打开**/file[tab]
操作,它将为您提供匹配的文件供您选择。但是,它实际上并没有在命令行上展开
**
,这使得结果有些模糊。我们有一个悬而未决的问题,那就是实现一种方法,在运行命令之前显式地要求对vars和globs进行扩展。

/*/*/file
听起来如何?我明白了。未来是否计划模仿zsh?我发现
open**/file
比zsh慢得多。当我更多地使用shell时,自动完成是否会变得更快?作为一般规则,fish团队不会添加可配置的行为。外壳应该“正常工作”。如果有人提出明显优于现有行为的新行为建议,并且这种改变不太可能让习惯于现有行为的一小部分用户感到烦恼,那么我们愿意改变现有行为。请打开一个问题:。第一次使用
**
完成递归文件速度较慢,因为操作系统可能需要从磁盘读取大量数据。