windows上的Fish shell在每次提示前输出问号

windows上的Fish shell在每次提示前输出问号,windows,shell,intellij-idea,fish,Windows,Shell,Intellij Idea,Fish,我刚切换到windows机器,我正在尝试正确配置fish。我通过默认路径安装了它,作为通过cygwin安装程序选择的shell。它似乎工作正常,但当我直接访问fish.exe或通过IntelliJ运行fish.exe时,它会输出一个?在非常迅速之前: 我在谷歌上搜索发现了这个: 使用屏幕时,我在每次提示前都会看到奇怪的输出。怎么了? 快速回答: 在fish中运行以下命令: echo的函数fish_title;结束'>~/.config/fish/config.fish 问题解决了 答案很长:

我刚切换到windows机器,我正在尝试正确配置fish。我通过默认路径安装了它,作为通过cygwin安装程序选择的shell。它似乎工作正常,但当我直接访问fish.exe或通过IntelliJ运行fish.exe时,它会输出一个?在非常迅速之前:

我在谷歌上搜索发现了这个:

使用屏幕时,我在每次提示前都会看到奇怪的输出。怎么了?

快速回答:

在fish中运行以下命令:

echo的函数fish_title;结束'>~/.config/fish/config.fish

问题解决了

答案很长:

Fish正在尝试设置终端的标题栏消息。虽然 屏幕本身支持此功能,但您的终端不支持。 不幸的是,当底层终端不支持设置 标题栏,屏幕只是通过转义码和文本 到基础终端,而不是忽略它们。这是不可能的 从鱼的内部检测并解决此问题,因为鱼没有办法 了解底层终端类型的方法。现在,唯一的办法 要解决此问题,请取消设置标题栏消息,如上所述

请注意,fish有一个默认标题栏消息,如果 fish_title函数未定义。因此,仅仅是扰乱了市场 fish_title函数将不起作用

因此,intelliJ和cmd(如果直接访问,fish.exe在cmd.exe中运行)似乎不支持设置标题栏,因此它们只是将字符输出到终端。然而,他们建议的解决方案不起作用。我尝试过各种选择,比如回显一个空字符串或空格,但没有什么能摆脱这个该死的问号

还有其他人遇到过这个问题并找到了解决方案吗


注:

  • 当通过mintty.exe使用fish时,它没有这种行为, 很可能是因为终端支持设置标题,但我更喜欢 在intelliJ中使用终端,而不是在 分开的窗户

  • 当我在Ubuntu或MacOSX上通过IntelliJ使用fish时,它没有这个问题,它似乎与Windows隔离


在该终端中,
$TERM
的值是多少?它不同于mintty的
$TERM
?在IntelliJ中它是“xterm-256color”,在mintty中它只是“xterm”,当我直接运行fish.exe时它是“cygwin”,在他们的github上打开了一个问题: