Fish Shell路径完成中的语法错误

时间:2016-08-10 14:49:49

标签: fish tab-completion

我错误地将&符号(&)放在目录名中。我重命名了目录,但现在每次更改目录时都会输出错误消息:

[A-Z][a-z]+

我不知道这些路径完成的存储位​​置。我查看了complete: Completion '[A list of directories' path]' contained a syntax error. Expected an argument, but found a '&' 列表中列出的文件夹,但没有运气......

这个问题应该很容易修复,只有我不知道在哪里看......

2 个答案:

答案 0 :(得分:1)

您看到的行为是因为某个eval正在评估未正确转义的字符串。在这种情况下,它将是__fish_complete_cd函数。其中,在鱼2.2.0中,确实以不安全的方式使用了eval。从鱼2.3.0开始,它不再这样做,这意味着你可以安全地在目录名中使用&符号。

通常情况下,我建议您在https://github.com/fish-shell/fish-shell/issues打开错误报告,尽可能详细地说明您正在运行的鱼的版本(echo $FISH_VERSION)以及重现问题的步骤。但是,在这种情况下,我们已经修复了这个bug,所以您需要做的就是升级鱼的安装。在你能做到这一点之前,你应该能够修复"只需启动一个新shell即可立即解决问题:exec fish

答案 1 :(得分:0)

我也安装了渔夫。我卸载了OMF,删除了渔夫文件和插件(我已经安装了z)。现在它有效。不确定究竟哪一个是罪魁祸首。