21

In a terminal window any smaller than fullscreen, if I type in a long command it starts overwriting the current line I'm on. If I type an additional line's worth, it finally moves to the next line. Does anyone know how to fix this?

This is what happens visually:

terminal screenshot

Edit: These are my prompt settings:

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\033[1m`__git_ps1`\033[0m\$ '
TERM=xterm

.bashrc:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\033[1m`__git_ps1`\033[0m\$ '
fi

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac
0

3 Answers 3

16

For some reason the terminal size is mis-reporting. It should change when you resize the terminal.

Try this in your .bashrc command file:

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
10
  • It looks like this was already in my .bashrc file. Running shopt shows that checkwinsize is on.
    – Matt Baer
    Aug 4, 2012 at 19:48
  • Hmm, what are the values of LINES and COLUMNS when the text is messed up? Aug 7, 2012 at 20:56
  • 3
    LINES is 24, COLUMNS is 80. Resizing the window does change these values, but the text is still messed up.
    – Matt Baer
    Aug 8, 2012 at 15:39
  • Ah. OK, I suspect the setting for the PROMPT now. Can you post the values of PS1 and TERM. In fact, post the line defining PS1 in .bashrc Aug 8, 2012 at 20:41
  • I updated the question with these answers.
    – Matt Baer
    Aug 10, 2012 at 15:43
10

I found the answer here. The answer with the most votes solved it for me.

To sum it up I had to wrap my formats in \[ \]
export PS1='\[\033[1;32m\]$(whoami)@$(hostname): \[\033[0;37m\]$(pwd)$ \[\033[0m\]'

1

For those using PuTTY terminal (v0.67) and terminal size is not updated correctly:

  1. You can right click on the window's left hand icon, then select Change Settings....
  2. Within PuTTY Reconfiguration, from left hand sidebar, click on Window > Set the size of the window > Columns.
  3. Update the Columns value manually. I changed mine to 255 and that stopped the terminal overwriting on its own line (when I type).

menu screenshot

settings screenshot

1
  • Note that Windows applications are technically off-topic here, but this is fine for the sake of people SSH-ing into Ubuntu installs.
    – wjandrea
    Jan 24, 2019 at 3:56

Not the answer you're looking for? Browse other questions tagged .