我刚换到一台Windows机器,我试图正确配置鱼。我通过默认路由安装它,作为通过cygwin设置选择的shell。它似乎工作正常,但是当我直接访问fish.exe或通过IntelliJ运行fish.exe时,它会输出一个?在非常迅速之前:
我用Google搜索并在fish documentation FAQ上找到了这个:
在使用屏幕时,我在每个提示前都看到了奇怪的输出。怎么了?
快速回答:
在fish中运行以下命令:
回声'功能fish_title;结束' > 〜/的.config /鱼/ config.fish问题解决了!
答案很长:
Fish正在尝试设置终端的标题栏消息。而 屏幕本身支持此功能,您的终端不支持。 不幸的是,当底层终端不支持设置时 标题栏,屏幕只是通过转义码和文本 到底层终端而不是忽略它们。是不可能的 从鱼里面发现并解决这个问题,因为鱼没办法 了解底层终端类型是什么。就目前而言,唯一的方法 解决这个问题是取消设置标题栏消息,如上所述。
请注意,fish有一个默认的标题栏消息,如果使用,则会使用该消息 fish_title函数未定义。所以简单地取消了 fish_title功能不起作用
因此,看来intelliJ和cmd(fish.exe在cmd.exe中运行,如果你直接访问它)不支持设置标题栏,所以他们只是将字符输出到终端。但是,他们建议的解决方案不起作用。我已经尝试了各种选项,比如回显空字符串或空格,但没有任何东西可以摆脱那个问题。
有没有其他人遇到这个并找到了解决方案?
注意:
通过mintty.exe使用fish时没有这种行为, 很可能因为该终端支持设置标题,但我更喜欢 使用智能内部的终端,而不是在一个 单独的窗口。
当我在Ubuntu或MacOSX上通过IntelliJ使用鱼时,它没有出现此问题,它似乎与Windows隔离