2013-01-24 34 views
-2

当我将命令粘贴到bash中并按回车时,下一行提示包含前一个发出命令的一半。 E.G:iterm gnu bash visual corruption

host:/Users/user $ some really long command pasted in

-bash: some: command not found

host:/Users/user $ some really command pasFoo

-bash: Foo: command not found

我输入富在下一个提示符,然后回车。你可以看到它只识别Foo命令,所以前面的命令的视觉是'不是真的有'

回答

1

不你的提示包含颜色?如果是这样,tell bash what's printable and what isn't,它应该正确包装你的线。

+0

这里是迅速建设(颜色) 'PS1 ='\ e [35m \ h \ e [m:\ e [1; 36m $ PWD \ e [m \ e [1; 32m $(__ git_ps1)\ e [m \'''' I' m不知道哪些字符需要在这里转义,因为它不是简单的[]就像在BashFAQ – Mike

+0

是的,这就是问题所在。如果你把'\ [... \]'放在所有转义序列的周围,它就会工作:'PS1 ='\ [\ e [35m \] \ h \ [\ e [m \]:\ [\ e [1; 36m \] $ PWD \ [\ e [m \ e [1; 32m \] $(__ git_ps1)\ [\ e [m \] \ $';' –

+0

太棒了!作品完美无瑕。谢谢'那个人'。 – Mike

0

你使用的是什么样的终端?如果在Windows上使用Cygwin或MingW,我发现当bash环境变量TERM设置不正确时会发生这种情况。

基本上,无论你是什么样的终端上,显示界面屏幕(通过类似诅咒或ncurses的)不完美的工作,并有可能提高它的方式:

有时候,我可以通过做export TERM=vt100(即甚至在普通的终端窗口帮我在Linux上改进的东西。VT100是一个非常古老和高度兼容的终端类型。

做一个echo $TERM看到的是什么TERM目前。

+0

现在我重新读取了您的屏幕示例,它看起来不像您在Windows上: - }。反正尝试vt100。 – DWright

+0

DWright我在Mac OSX上使用iTerm。 '回声$ TERM' 'linux' '$帮助 GNU的bash,版本3.2.48(1)-release下(x86_64-苹果darwin11)' – Mike