이 작업을 하고 ~/.XCompose
있는데 점점 더 많은 시퀀스를 추가하다 보면 실수를 하거나 다른 기호에 동일한 시퀀스를 사용하는 경우가 있습니다.
예:
철자가 틀리거나 존재하지 않는 코드
<Multi_key> <non-existent-keysym> : other-non-existent-keysym
완전 충돌
<Multi_key> <a> <b> : x # overrule by 2nd rule
<Multi_key> <a> <b> : y
접두사 충돌
<Multi_key> <a> <b> <c> : y
<Multi_key> <a> <b> : x # overruled by 1st rule
질문
내 파일을 확인할 수 있는 명령이 있습니까 ~/.XCompose
? 최소 요구 사항은 이진 답변입니다. 다음 중 하나입니다. »XCompose에 오류가 없습니다" 또는"XCompose에 오류가 있습니다«. 오류가 발생하면 »와 같은 유용한 오류 메시지가 표시됩니다.규칙 순서 접두사 충돌 « 환영합니다.
내가 시도한 것
~/.XCompose
위의 모든 오류로 무언가를 만들고 텍스트 편집기를 열었습니다. 텍스트 편집기에는 오류가 표시되지 않습니다(콘솔에서). 올바르고 재정의되지 않은 시퀀스는 유효하며 다른 모든 시퀀스는 무시됩니다.
나는 읽었다 man 5 XCompose
. 문서 자체에서는 도움이 되는 것을 찾지 못했습니다. 마지막 참고자료를 봤습니다 man 5 XCompose
. 그냥 mkcomposecache(1)
유망 해 보인다 (fromGoogle 검색 매뉴얼 페이지), 하지만 내 시스템(Linux Mint 18.3)에는 없는 것 같습니다. man -k mkcomposecache
아무것도 apt search mkcomposecache
발견되지 않았습니다.
편집하다:mkcomposecache
@quixotic이 제안한 대로 다음에서 컴파일했습니다.원천그리고 실행합니다. 하지만 1
어떤 작성 파일을 선택하든(오류 유무에 관계없이) 종료 상태는 다음과 같습니다. 오류 메시지가 없습니다. 캐시가 생성되지 않습니다. 이 프로그램을 호출하는 방법의 예:
$ mkcomposecache en_US.UTF-8 /usr/share/X11/locale/en_US.UTF-8/Compose /tmp/
* XOpenDisplay: Success
$ echo $?
1
이 파일은 /usr/share/X11/locale/en_US.UTF-8/Compose
원본 Ubuntu 컴파일 파일이며 오류가 없어야 합니다. Ubuntu 및 Arch Linux 리포지토리에 패키지되지 않은 이유가 있는 것 같습니다.
mkcomposecache
그것이 작동하더라도 그것이 나에게 필요한 것인지 의심됩니다 .
답변1
리버스엔지니어링을 했어요이 확장그리고 이를 작은 웹 애플리케이션으로 만들어 보세요.
여기서 사용할 수 있습니다:https://jsfiddle.net/9p1s60of/
다음은 실제 도구의 이미지입니다.
답변2
약간 조잡하지만 연관 배열을 사용하여 빠르게 그룹화할 수 있습니다. 예를 들면 다음과 같습니다 awk
.
이와 같은 입력 파일의 경우
<Multi_key> <a> <t> : y
<Multi_key> <a> <g> : y
<Multi_key> <a> <b> : x
<Multi_key> <a> <b> : y
<Multi_key> <a> <x> <c> : y
<Multi_key> <a> <x> : x
<Multi_key> <a> <g> : Q
<Multi_key> <a> <n> : y
이 명령
awk '!d[$2][$3]{d[$2][$3]=1;next} {print $0 " PROBLEM!"}' myFile
출력됩니다
<Multi_key> <a> <b> : y PROBLEM!
<Multi_key> <a> <x> : x PROBLEM!
<Multi_key> <a> <g> : Q PROBLEM!
또한 그것과 충돌하는 줄을 살펴보십시오.
awk 'c=d[$2][$3]{print $0 " COLLISION: " c;next} {d[$2][$3]=$0}' myFile
결과:
<Multi_key> <a> <b> : y COLLISION: <Multi_key> <a> <b> : x
<Multi_key> <a> <x> : x COLLISION: <Multi_key> <a> <x> <c> : y
<Multi_key> <a> <g> : Q COLLISION: <Multi_key> <a> <g> : y