zsh:インドのフォントサポートレンダリングの問題、bashでうまく機能する

zsh:インドのフォントサポートレンダリングの問題、bashでうまく機能する

gnome-terminalバージョン3.36を使用していますが、
問題bash なく入力できます。

$ अखिल् 

zsh 正常に表示されない場合

$ अखिल<094d>

zsh インド フォント

これはインドのフォントに対するzshの動作であり、bashでうまく動作します。

ベストアンサー1

走ればinfo zsh 'special characters'(情報形式 zsh 文書がインストールされていると仮定) 以下が表示されます。

印刷できないマルチバイト文字

これは、ASCII の範囲外の制御文字だけでなく、次のようなその他の文字にも適用されます。このMULTIBYTEオプションが適用されると、COMBINING_CHARS幅が0として報告され、ASCII文字セットにないマルチバイト文字は、このオプションがオンのときに結合文字として扱われます。このオプションがオフになっている場合、または文字の組み合わせが無効な場所に文字が表示された場合、その文字は印刷できないと見なされます。

印刷できないマルチバイト文字は、山カッコの間に16進数で表示されます。これはワイド文字セット内の文字のコードポイントです。オペレーティングシステムによっては、Unicodeであってもなくてもよい。

$ unicode $'\u94d'
U+094D DEVANAGARI SIGN VIRAMA
UTF-8: e0 a5 8d UTF-16BE: 094d Decimal: &#2381; 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文字はこのカテゴリに属します。

走る

set -o combiningchars

zleに文字結合を処理させる場合。

U+0301 組み合わせたシャープなアクセントにも同様です。Stéphaneたとえば、オプションなしでレンダリングされたzle(通常のU + 00E9プレフィックス構成ではなく、実際に2つのSte<0301>phane文字が構成されているかどうかを知りたいので、個人的な好み)。é

おすすめ記事