gpt4 book ai didi

bash - Cygwin 将文本换回到同一行,导致文本被覆盖

转载 作者:行者123 更新时间:2023-11-29 09:02:32 26 4
gpt4 key购买 nike

我在我的 Windows 7 机器上安装了 cygwin,我遇到了一个问题,当我输入命令时,它偶尔会换回同一行,删除 bash 提示符。这里是一个例子:

wrapping example

有问题的命令是命令“201”(从底部算起 4 行)。我将其他人包括在上下文中。

我输入的命令文本是

git commit -m "Forced LF line endings."

(注意:我主要使用 git 命令发布这个,但任何命令都会出现问题。我还没有注意到模式。)

它跳到行首并开始覆盖我的提示。

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

enter image description here

(注意光标是命令末尾之后的许多字符。)当我尝试从该位置退格光标时,我只能返回这么远:

enter image description here

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

enter image description here

命令从显示的文本末尾开始。(这对于整个历史是一致的)但是当我在历史中上升到错误的 git commit .. . 它会像以前一样显示被覆盖的文本,但是当我经过它时,它会删除一行提示 并像以前一样显示历史记录中的前一个条目它之前(a la image 2)。

当我创建我的 PS1 变量时,我有这样的奇怪输出,但我已经关闭了我的括号和其他东西并且不认为这是导致问题的原因。但是,如果您想查看我的 .bash_profile(设置 PS1),请随时在 GitHub 上查看它。 .真的很短。

我已经尝试搜索问题,但只能找到一些关于 xterm 中换行的 cygwin 电子邮件存档,但没有解决方案。

PS: 由于我正在推送最新的 .bash_profile,为了链接它,当我输入 git add .bash_profile 并回车时,我再次遇到了问题,它运行了命令,但将光标返回到同一命令的开头,而不是打印新提示。然后当我写另一个提交行时,它和第一个图像一样,但是它把行的其余部分涂黑(它包裹了行,但覆盖了整行,而不仅仅是第一行几个字符。)

最佳答案

参见 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

如果您没有在提示中包含非打印字符(例如颜色序列),则它们的长度将被计为提示长度的一部分,最终会导致您描述的症状。

关于bash - Cygwin 将文本换回到同一行,导致文本被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20697195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com