Eu freqüentemente lidei com diacríticos combinados, especialmente a combinação de acento agudo (U0301 ou \xcc\x81
). Eu tenho um teclado configurado para inserir esse caractere, e isso funciona bem no shell.
$ echo а́
> а́
$ echo а́ | hexdump
> 0000000 d0 b0 cc 81 0a
> 0000005
No entanto, a interface do usuário está confusa sobre quantos caracteres estão presentes. Se eu pressionar o botão de seta para cima e, em seguida, tentar editar um comando que inclua a combinação de sinais diacríticos nos argumentos, sempre acabarei excluindo os caracteres errados e inserindo caracteres no lugar errado. Por exemplo, se eu pressionar backspace uma vez, o shell mostrará que eu deletei а́
, mas pressionar Return
mostra que eu deletei apenas o diacrítico.
$ echo
> а
Pressionar a seta para cima novamente mostra o que foi realmente interpretado:
$ echo а
É possível obter o shell para tratar sinais diacríticos combinados com a letra anterior, para que um backspace apague ambos? Alternativamente, eu ficaria feliz que o shell exiba o diacrítico de combinação separadamente, algo como а'
?
Tags bash unicode shell user-interface osx