验证 ~/.XCompose

Soc*_*owi 5 input-method compose-key

我正在努力在~/.XCompose. 随着我添加越来越多的序列,有时我会打错字或对不同的符号使用相同的序列。

例子:

错别字/不存在的代码

<Multi_key> <non-existent-keysym> : other-non-existent-keysym
Run Code Online (Sandbox Code Playgroud)

完全碰撞

<Multi_key> <a> <b> : x      # overrule by 2nd rule
<Multi_key> <a> <b> : y
Run Code Online (Sandbox Code Playgroud)

前缀冲突

<Multi_key> <a> <b> <c> : y 
<Multi_key> <a> <b> : x      # overruled by 1st rule
Run Code Online (Sandbox Code Playgroud)

是否有验证我的~/.XCompose文件的命令。最低要求是二进制答案:要么 »您的 XCompose 没有错误« 或 »您的 XCompose 包含错误«。如果出现错误,欢迎提供有用的错误消息,例如 »规则序列前缀的冲突 «。

我试过的

我创建了~/.XCompose包含上面的所有错误并打开了一个文本编辑器。文本编辑器没有显示错误(在控制台上)。正确且未被推翻的序列有效,所有其他序列都将被忽略。

我读了man 5 XCompose。在文档本身中,我发现没有任何帮助。我查看了man 5 XCompose. 只有mkcomposecache(1)看起来很有希望(从判断一派手册页),但似乎缺少我的系统(Linux Mint的18.3)上。既没有man -k mkcomposecache也没有apt search mkcomposecache找到任何东西。

编辑:正如@quixotic 所建议的,我mkcomposecache源代码编译并运行它,但它的退出状态是1,无论我选择什么撰写文件(有或没有错误)。没有错误信息。不生成缓存。我如何调用程序的示例:

$ mkcomposecache en_US.UTF-8 /usr/share/X11/locale/en_US.UTF-8/Compose /tmp/
* XOpenDisplay: Success
$ echo $?
1
Run Code Online (Sandbox Code Playgroud)

该文件/usr/share/X11/locale/en_US.UTF-8/Compose是 Ubuntu 的原始撰写文件,应该没有错误。我想它没有打包在 Ubuntu 和 Arch Linux 存储库中是有原因的。

我怀疑这mkcomposecache就是我所需要的,即使它会起作用。

小智 5

我对这个扩展进行了逆向工程,并将其制作成一个小型网络应用程序。

您可以在这里使用它: https: //jsfiddle.net/9p1s60of/

这是该工具正在运行的图像:

正在使用的工具