bash& mingw:向上滚动时覆盖输出

时间:2015-03-04 19:38:10

标签: bash mingw msysgit

我目前正在使用git-for-windows-sdk,使用Bash 3.1.33(1)-release。当我向上滚动并按下key up时,我会遇到非常恼人和错误的行为:控制台不会滚动回到底部,只显示提示并开始覆盖输出。

清除仅对当前显示的区域有帮助,输出接下来后,仍有缓冲输出。

如何重现:

  1. 输出超过1个屏幕的内容。
  2. 向上滚动。
  3. arrow up键。
  4. 预期行为:

    Bash向下滚动并显示提示。

    当前行为:

    Bash停留在屏幕上并在最后一行显示提示。然后覆盖缓冲输出。


    实际上,我试图稍微研究一下这种行为。我意识到它受PS1 / PROMPT设置的影响。颜色转义和新行在其中有一些作用,但我无法定义它。

    • 默认的git-bash提示设置不会产生这种错误行为:

      export PROMPT_COMMAND='__git_ps1 "\n\[\033[33m\]\w\[\033[0m\]\[\033[32m\]" "\[\033[0m\]\n$ "'
      
    • 只是删除新行生成错误行为:

      export PROMPT_COMMAND='__git_ps1 "\n\[\033[33m\]\w\[\033[0m\]\[\033[32m\]" "\[\033[0m\]$ "'
      
    • 但是,没有颜色的一行提示不会产生错误行为:

      export PROMPT_COMMAND='__git_ps1 "\w" " \$ "'
      

    为了更好地理解,请参阅此截屏视频:http://screencast.com/t/vqItWFSoR

0 个答案:

没有答案