加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 22:42:23 所属栏目:安全 来源:网络整理
导读:我在我的 Windows 7机器上安装了cygwin,我遇到了一个问题,当我键入命令时,它偶尔会被包回到同一行,删除bash提示符.这是一个例子: 有问题的命令是命令“201”(从底部开始的4行).我把其他人包括在内. 我输入的命令的文本是 git commit -m“强制LF行结尾.” (
我在我的 Windows 7机器上安装了cygwin,我遇到了一个问题,当我键入命令时,它偶尔会被包回到同一行,删除bash提示符.这是一个例子:

有问题的命令是命令“201”(从底部开始的4行).我把其他人包括在内.

我输入的命令的文本是

git commit -m“强制LF行结尾.”

(注意:我发布的主要是git命令,但任何命令都会出现问题.我还没有注意到模式.)

它跳到了行的开头并开始覆盖我的提示.

当我按下向上箭头(查看历史记录)时,结果甚至更奇怪:

(注意光标是命令末尾的许多字符.)
当我尝试从该位置退格光标时,我只能回到这一步:

然后当我从那个退格线进入历史时,我得到了这个:

该命令从显示的文本末尾开始. (这对整个历史来说是一致的)但是当我在历史记录中出现错误的git提交时…它会像以前一样显示覆盖的文本但是当我经过它时,它会删除一行提示并且以与之前相同的方式显示历史记录中的上一个条目(图像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:

[

begin a sequence of non-printing characters,which could be used to embed a terminal control sequence into the prompt

]

end a sequence of non-printing characters

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读