【问题标题】:Syntax error in Fish Shell path completionFish Shell 路径完成中的语法错误
【发布时间】:2016-08-10 14:49:49
【问题描述】:

我犯了一个错误,在目录名称中放置了一个 & 符号。我重命名了目录,但现在每次更改目录时都会打印一条错误消息:

complete: Completion '[A list of directories' path]' contained a syntax error. Expected an argument, but found a '&'

我不知道这些路径补全存储在哪里。我查看了$fish_complete_path 列表中列出的文件夹,但没有运气......

这个问题应该很容易解决,只是不知道去哪里找……

【问题讨论】:

    标签: fish tab-completion


    【解决方案1】:

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

    通常我会建议在https://github.com/fish-shell/fish-shell/issues 打开一个错误报告,其中包含尽可能详细的信息,包括您正在运行的鱼的版本 (echo $FISH_VERSION) 以及重现问题的步骤。但是,在这种情况下,我们已经修复了该错误,因此您需要做的就是升级您的鱼安装。在您可以这样做之前,您应该能够通过简单地启动一个新的 shell 来“修复”当前的问题:exec fish

    【讨论】:

    • 我使用的是fish 2.3.1。此外,启动一个新的 shell 并不能解决问题(从那以后我已经重新启动了几次计算机)。如果这很重要,我已经安装了 OMF...
    • OMF 提供了一些有时会导致问题的补全。我建议从 $fish_complete_path 中删除 OMF 路径,看看它们是否导致了这种情况。
    【解决方案2】:

    我还安装了渔夫。我卸载了 OMF,删除了 Fisherman 文件和插件(我有 z 并安装了)。现在它起作用了。不知道其中哪一个是罪魁祸首。

    【讨论】:

      猜你喜欢
      • 2010-10-26
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 2015-01-14
      • 2015-10-26
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      相关资源
      最近更新 更多