Então isso aconteceu enquanto eu estava escrevendo algum código C no vim no terminal do Ubuntu 16.04.
Sempre que tento inserir um colchete direito, a janela do terminal mostra um '7'. Além disso, pressionar a tecla '7' insere um caractere de seta para baixo (acho que um caractere unicode).
Exemplo:
fprintf(stdout, "%s\n", argv[17);
Estranhamente, pressionar Shift-] resulta em um '}' como esperado, e as outras teclas numéricas mostram o número correspondente corretamente.
Pensando que era um problema no vim, tentei abrir o arquivo no emacs e vi a mesma coisa.
E quando tentei compilar o arquivo com o gcc, a saída do compilador tinha o mesmo problema de codificação.
Eu tentei fazer o ssh em um servidor remoto e aconteceu a mesma coisa, então tenho certeza que o problema está em como meu terminal está apresentando caracteres.
O que está acontecendo e como faço para corrigir isso?
Editar: problema resolvido graças à dica de usar o comando reset
. Tudo funciona bem depois de reiniciar o meu terminal. Eu estava trabalhando com dados binários, o que parece ser a causa desse problema.