我在bash中使用gnome终端3.36版本,我可以在没有问题的情况下输入
$ अखिल् 在zsh中,它没有正确显示
$ अखिल<094d>
这是indic字体的zsh行为,它们在bash中工作得很好。
发布于 2020-07-14 16:12:53
如果您运行info zsh 'special characters' (假设您已安装了info格式的zsh文档),您将看到:
不可打印的多字节字符本项适用于不属于ASCII范围的控制字符,加上其他字符如下。如果
MULTIBYTE选项有效,则当选项COMBINING_CHARS打开时,报告为零宽度的ASCII字符集中的多字节字符将被视为组合字符。如果选项关闭,或者在组合字符无效的地方出现字符,则该字符被视为不可打印的字符。不可打印的多字节字符显示为尖括号之间的十六进制数。数字是宽字符集中字符的代码点;这可能是Unicode,也可能不是Unicode,这取决于操作系统。
$ unicode 所以U+094D字符在这个类别中。跑set -o combiningchars如果你想让zle处理组合字符。例如,U+0301结合了Stéphane中的尖锐重音,zle在没有该选项的情况下将其呈现为Ste<0301>phane (我个人的偏好,因为我想知道,实际上有两个字符组成了é,而不是通常的U+00E9预组合é)。\u94d'
U+094D DEVANAGARI SIGN VIRAMA
UTF-8: e0 a5 8d UTF-16BE: 094d Decimal: ् Octal: \04515
Category: Mn (Mark, Non-Spacing); East Asian width: N (neutral)
Unicode block: 0900..097F; Devanagari
Bidi: NSM (Non-Spacing Mark)
Combining: 9 (Viramas)所以U+094D字符在这个类别中。
跑
A6
如果你想让zle处理组合字符。
例如,U+0301结合了D7中的尖锐重音,zle在没有该选项的情况下将其呈现为D8 (我个人的偏好,因为我想知道,实际上有两个字符组成了D9,而不是通常的U+00E9预组合D10)。
https://unix.stackexchange.com/questions/598440
复制相似问题