1

This is a wierd and very specific problem in terminator. When i type the character "§" into a terminal window and then press backspace twice it allows me to always remove two characters, even if they are a part of the PS1 string .

Steps to reproduce:

  1. Type "§" into terminal.
  2. Erase 2 characters.
  3. Repeat.
4
  • 1
    which terminal app(s)?
    – sourcejedi
    Commented Mar 26, 2017 at 7:47
  • I can't reproduce this in terminator with zsh.
    – Sparhawk
    Commented Mar 26, 2017 at 7:50
  • 2
    What are your locale settings?
    – choroba
    Commented Mar 26, 2017 at 8:42
  • 1
    Does stty -a show iutf8? If not, try after stty iutf8. That should at least cover the tty device internal line editor (like when you run cat and enter text there). Your terminal emultor should set the iutf8 flag when called in a UTF-8 locale. If it doesn't, that's the issue we should be investigating. Commented Mar 26, 2017 at 9:55

1 Answer 1

4

Sounds like mismatched UTF-8 settings between your terminal and the application locale.

The section sign isn't part of the ASCII character set, so it's represented as two bytes in UTF-8. Your terminal probably sends it as such, but the application side doesn't realise it's supposed to represent just one character and prints as only one. The command line editor keeps a count of how many characters you have entered, and since it thinks the section sign is two characters, it allows you to backspace that many. The terminal knows it's only one, and displays and backspaces it as one.

You must log in to answer this question.

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