2013-01-24 32 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