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 $'\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 접두사 구성이 아닌 Ste<0301>phane실제로 두 문자가 구성되어 있는지 알고 싶기 때문에 개인적 선호 ).é

관련 정보