Bash – Fix for bash line-wrapping & backspace display bugs on Mac OS X

bashmac-osx

When I open up Terminal (on Mac OS X 10.5.8) and type a long command line:
alt text

…the text doesn't go to the next line when it wraps around:
alt text
alt text

Also, sometimes when I type a command and then backspace (or up-arrow or ^U):
alt text

…the entire line isn't erased and I can't backspace beyond a certain point:
alt text
alt text

Is this a known bash bug (on Mac OS X)? Is there a fix?

Update: Juliano was correct, the problem was caused by incorrectly delimiting a console code sequence in my PS1 variable. Changing:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '

…in my .bashrc to:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '

…solved the problem.

Best Answer

The behavior is consistent to having console codes in your prompt (to change the color, etc.) and not properly marking then so that bash knows that they are invisible.

Before anything else, do this:

PS1='\w\$ '

And then try again. If the problem is solved, then my suspicions are correct.

Each console code sequence must be delimited with \[ and \] in the PS1 variable. They tell bash that whatever is in there doesn't move the cursor position. Read the bash manual for more information.