如何让长命令行换行到下一行?

Modified on: Sat, 09 Jun 2018 12:53:23 +0800

我在Ubuntu中已经注意了很长一段时间让我感到沮丧的是当我在命令行输入一个比终端宽度更长(更宽)的命令时,而不是换行到新行,它返回到同一行的第1列,并开始覆盖命令行的开头。 (它实际上并没有覆盖实际的命令,但在视觉上,它会覆盖显示的文本。)

如果没有看到它就很难解释,但是让我说我​​的终端是20个字符宽(我的更像是120个字符 - 但是为了一个例子),我想要回显英文字母。我输入的是:

echo abcdefghijklmnopqrstuvwxyz

但是在我按下键之前我的终端是什么样的:

pqrstuvwxyzghijklmno

当我点击进入时,它回声

abcdefghijklmnopqrstuvwxyz

所以我知道命令已正确收到。它只是在“o”之后包装我的打字并在同一行重新开始。

如果我在一个只有20个字符宽的终端上键入此命令,我期望会发生这种情况:

pqrstuvwxyzghijklmno

背景:我使用bash作为我的shell,我在〜/ .bashrc中有这一行:

abcdefghijklmnopqrstuvwxyz

能够使用VI命令导航命令行。我目前正在使用Ubuntu 10.10服务器,并使用Putty连接到服务器。

在我工作的任何其他环境中,如果我输入一个长命令行,当我的命令长于终端宽度时,它会在我正在处理的行下面添加一个新行,当我继续输入时我可以看到我的命令在两条不同的线上。但是只要我记得使用Ubuntu,我的长命令只占用1行。

当我回到历史记录中的前一个命令时(我点击Esc,然后'K'返回上一个命令)也会发生这种情况 - 当我得到一个比终端宽度更长的上一个命令时,命令行被破坏了,我无法告诉我在命令中的位置。

我发现看到整个长命令的唯一解决方法是点击“Esc-V”,它会在VI编辑器中打开当前命令。

我认为我的.bashrc文件中没有任何奇怪的内容。我注释掉了“set -o vi”这一行,我仍然遇到了问题。

我下载了Putty的新副本,并没有对配置进行任何更改 - 我只是输入我的主机名进行连接,我仍然遇到问题,所以我认为这与Putty没什么关系(除非我需要进行一些配置更改)

有没有其他人遇到过这个问题,有人能想到如何解决这个问题吗?

修改强>

这是我的.bashrc文件。我已经在机器之间复制了相同的配置文件,并且我在我的$ PS1中使用了特殊字符,它们以某种方式将其丢弃。我现在坚持使用我的$ PS1的标准bash变量。

感谢@ændrük获取.bashrc上的提示!

...结束编辑...

作者:Hugo,BrianH

最佳答案

我猜你已经用颜色配置了PS1,对吗?

请确保您的颜色集前面的\[引号内有PS1

例如:

PS1='\[\e[0;32m\u@\w/:\[\e[m '
作者:wjandrea,user10070

相关问答

添加新评论