콘솔의 "compose"는 두 문자를 입력 할 수 있지만 세 번째 문자는 출력 할 수 있습니다.
문제는 작성 정의 가 두 입력 (즉, 입력 된 키와 입력 된 기호의 경우에만 작성을 정의 할 수 없음)과 출력 모두에 대해 bytes를 사용 한다는 것입니다.
멀티 바이트 (적어도 1 ~ 4 바이트) 인 UTF-8에서 작동하려면 콘솔 입력 처리 방식에 큰 변화가 필요하며 현재 더 복잡한 것으로 사용되는 간단한 char 배열을 대체해야합니다. 그렇게 할 계획이없는 것 같습니다 (커널 개발자들 사이의 합의는 콘솔이 콘솔로 유지되어야한다는 것입니다. 콘솔은 간단하고 마지막 ressort에만 사용됩니다. 실제로 유니 코드가 필요한 경우 bidi, shaping 등도 필요합니다.) 그래픽 터미널을 실행하는 것이 좋습니다 (X11에서는 전체 화면 xterm이지만 다른 가능성이 있습니다).
따라서 실제로 콘솔에서 멀티 바이트 문자로 작동하지 않으며 작동하지 않습니다. 그러나 작성 정의를 일반 ASCII로 제한하면 여전히 작동합니다.
또한 출력이 iso-8859-1 (최대 0x00ff의 유니 코드 값에 해당) 인 경우에도 작동한다는 것을 알았습니다. 이를 위해 시작 스크립트에 줄을 넣을 수 있습니다.
로드 키 / somepath / somefile
그리고 파일에 원하는 작성 정의를 넣으십시오 (ISO-8859-1 인코딩으로 파일을 저장하고 출력으로 0x7f보다 큰 문자를 사용하십시오). 그런 파일의 구문은 다음과 같이 매우 간단합니다.
'somechar' 'somotherchar'를 'desiredoutput'으로 작성
예 :
'a'를 'å'로 작성
'a' 'e'를 'æ'로 작성
아포스트로피는 탈출해야합니다.
죽은 분음 부호의 효과도 해당 파일에 정의됩니다. dead_acute + a의 경우 다음과 같은 줄을 정의합니다.
'\' 'a'를 'á'로 작성
dead_grave는 백틱 (`)을 사용하고 dead_diaeresis는 큰 따옴표 ( ")를 사용하고 dead_circumflex는 circumflex (^)를 사용하고 dead_tilde는 틸드 (~)를 사용합니다.