cygwin提示中的换行?

问题描述

我看过重复的问题。什么都没有。

我使用Gitbash,当使用Cygwin时,我使用gitbash提示(/Git/etc/bash.bashrc)来显示相同​​的提示。在Gitbash中,提示起作用。在cygwin中,输出行会自动换行。例如:

import Main from './Main' describe('Main method',() => { describe('getService given ServiceA',() => { it.skip('should return an instantiate of ServiceA class',function () { const main = new Main(); const getService = spy(main,'getService'); main.getService('serviceA'); expect(getService).to.be.an.instanceOf(ServiceA); }); });

此行在附加到PS1时引起换行(仅在cygwin中)。 minttyrc和颜色设置完全相同。我认为这是问题所在,去除颜色可以解决问题。但是,我相信一切都可以正确逃脱,并且因为它没有包装在gitbash中,所以我不知道问题出在哪里。

这里的颜色似乎是问题所在,将其删除即可解决问题。但为什么?终端有何不同?我也想知道是否有可能早日逃脱,但是PyCharm的shellcheck表示一切都很好。

包装示例:

Cygwin: [ "$python_version" ] && python_version='\[\033[95;38;5;227m\]?'"${python_version##* } "

GitBash(理想输出): ⬢14.7.0p/new ?3.8.3 (venv) ❯

它仅在提示符(PS1变量,也称为~/Desktop/new ?3.8.3 ⬢14.7.0 (venv) ❯)内发生;不在终端上实际键入命令时。

解决方法

答案:Cygwin是垃圾(请夸张)。它有很多实用程序,但是却遇到了许多类似的错误,这实在令人遗憾。我卸载了它,从PATH中删除了它的变量,并在其中添加了C:\ Program Files \ Git \ bin,现在可以使用ssh -t user@host bin "bash -l" ssh了。这给了我正确的提示,无论是否使用ssh,都没有包装;我可以使用MinGW安装其他实用程序,例如g ++。我希望Cygwin在我以各种方式进行调试时能尽快解决问题。不更改任何代码,将其卸载,然后输出成功。