【问题标题】:extra characters when scrolling through command history in bash滚动浏览bash中的命令历史记录时的额外字符
【发布时间】:2013-07-01 13:11:36
【问题描述】:

当我在 bash 中使用向上箭头键滚动浏览命令历史记录时,我经常(但并非总是)最终导致命令的前三个字符基本上卡住了。

例如,我键入以下命令(按此顺序):

>whoami
>pwd
>ls -la

现在我点击一次并得到:

>ls -la

我第二次击中它并得到

>ls pwd

我第三次击中它并得到

>ls whoami

如果我再击中几次,我会得到

>ls ls -la

如果我一路走下去,我就会得到

>ls

如果我在这里按回车,它的行为就好像那里什么都没有(而不是额外的 ls)

什么可能导致这种情况/我应该在哪里寻找?我仍然主要是一个 linux 新手。

【问题讨论】:

  • 我的猜测是你没有“得到”这些命令——它只是打印它们偏移三个字符,ls 永远不会被覆盖。
  • 提示符中是否有一些有趣的非打印字符让 bash 感到困惑? echo $PS1 给我们。
  • 检查您的~/.inputrc 是否有任何损坏。
  • 是的,我开始使用我的 $PS1,这似乎是问题所在......问题在于颜色标记中的 \n
  • @CarlNorum 很好,您能否将其发布为答案,以便它成为其他痛苦的人的良好参考点。 :)

标签: bash


【解决方案1】:

想通了。问题在于我的 PS1 提示符中 \n 的位置。

糟糕的版本:

export PS1="\n\e[0;33m[\!]\e[m\e[0;32m[\A \w]\n\e[m>

好版本:

export PS1="\n\e[0;33m[\!]\e[m\e[0;32m[\A \w]\e[m\n>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 2019-10-22
    相关资源
    最近更新 更多