我在Windows 7机器上安装了cygwin,遇到一个问题,当我键入命令时,它有时会换回到同一行,删除bash提示。这是一个例子:
有问题的命令是命令“ 201”(底部4行)。我将其他内容包括在内。
我输入的命令文本为
git commit -m "Forced LF line endings."
(注意:我主要使用git命令发布此消息,但是任何命令都出现问题。我还没有注意到一种模式。)
它跳到该行的开头,并开始覆盖我的提示。
当我按下向上箭头(以查看历史记录)时,结果甚至更奇怪:
(请注意,光标在命令末尾有许多字符。)当我尝试从该位置退格光标时,我只能退回很远:
然后,当我从该退格线进入历史记录时,得到以下信息:
该命令从显示的文本的末尾开始。(这在整个历史记录中都是一致的),但是当我进入历史记录时,git commit ...
它会像以前一样显示被覆盖的文本,但是当我经过它时,它会删除提示行并在其中显示上一个条目历史与以前一样(图2)。
当我创建PS1变量时,我的输出像这样奇怪,但是自那以后我就关闭了方括号和东西,并认为这不会引起问题。但是,如果您想看到我的.bash_profile
(设置了PS1),可以随时在GitHub上看到它。真的很短。
我尝试搜索该问题,但只能找到一些关于xterm中换行的cygwin电子邮件存档,但没有解决方案。
PS:在我推送最新.bash_profile
链接时,为了进行链接,我在键入git add .bash_profile
并按Enter键时再次遇到了问题,它运行了命令,但是将光标返回到同一命令的开头,而不是打印新的提示。然后,当我编写另一个提交行时,它的效果与第一个图像相同,但是它涂了其余的行(它包裹了行,但覆盖了整个行,而不仅仅是前几个字符。)
参见http://manpages.ubuntu.com/manpages/lucid/man1/bash.1.html#contenttoc26:
\ [
开始一系列非打印字符,这些字符可用于将终端控制序列嵌入到提示中
\]
结束一系列非打印字符
如果您不在提示中包含非打印字符(例如颜色序列),则这些字符的长度将被视为提示长度的一部分,最终会导致您所描述的症状。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句