Mac Terminal/iTerm history cursor problems

bashitermosx-snow-leopardreadlineterminal.app

So often, I run a command in either Terminal.app or iTerm, press the up arrow to go back to edit it, and the cursor jumps to the line above or somewhere totally in the wrong place. It especially happens when the command is so long that it wraps around to the next line. Sometimes these long commands all appear on one line, and sometimes they display correctly on multiple lines.

This happens in both iTerm and Terminal.app

Also happens in both vi and emacs modes, making them pretty much unusable.

any ideas? thanks!

Best Answer

It is most likely because your prompt definition includes sequences that should not be counted in the length of the prompt, such as those for setting colors. These sequences should be between \[ and \] to prevent their length from being counted. Here is an example that produces an all-red prompt:

PS1='\[\033[31m\]\u@\h:\w\$\[\033[0m\]'