> Just how stupid an idea did I have when I did this: > > $PS1="[\e[31m\h\e[m:\e[34m\u\e[m:\e[31m\w\$\e[m]" > > in my /etc/profile? > Not stupid at all!! > It looks really nifty until I try to do commands that wrap around, in which > case the first line returns, but keeps going on the current spot. > > The real disaster, however, occurs when I get into the command buffer... > each time I hit the left arrow, it smears about half the command up a line. > You need to "escape" the escape sequences - like this: export PS1="\[^[[33;1m\]\u@\h\[^[[0m^[[1m\]: " export PS2="\[^[[33;1m\]continue \[^[[0m^[[1m\]> " [NOTE: I've replaced the ESCAPE character with "^["] The \[...\] around the ANSI ESCAPE SEQUENCES keeps them from being counted as part of the prompt's length. ========== Note also the following: > I don't quite get it... I tried replacing my \e's with ^['s and surrounding > all escapes with /[/] pairs, and it wouldn't work at all (just the > "source" were displayed.. IE the same as typing `echo $PS1`) > I'm sorry. I wasn't as clear as I should have been. the two-char ^[ was used in the e-mail message, where-as the single-char ^[ (ie. Ctrl-[) is used in the PS1/PS2 strings. You use of \e has the same effect as a ^[. > I then changed the \e's back, and this time it showed color but wrapped > funny again... what am I doing wrong? > This works for me, though I do have /etc/inputrc with: # Use a single line for display set horizontal-scroll-mode on This causes the prompt to scroll off the left edge as I type long commands.