Cygwin将文本重新包装到同一行,导致文本被覆盖

 kcz1596369 发布于 2023-02-09 07:29

我在我的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键时,我再次遇到问题,它运行命令但是将光标返回到相同命令的开头而不是打印新提示.然后,当我写另一个提交行时,它的作用与第一个图像相同,但是它会使行的其余部分变黑(它包裹了行,但覆盖了整行,而不仅仅是前几个字符.)

1 个回答
  • 请参阅http://manpages.ubuntu.com/manpages/lucid/man1/bash.1.html#contenttoc26:

    \ [

    开始一系列非打印字符,可用于将终端控制序列嵌入提示中

    \]

    结束一系列非打印字符

    如果您未在提示中附上非打印字符(例如颜色序列),则这些字符的长度将被计为提示长度的一部分,最终会导致您描述的症状.

    2023-02-09 07:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有