我正在努力在~/.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
。看起来很有希望(从谷歌搜索的manpagemkcomposecache(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
该文件/usr/share/X11/locale/en_US.UTF-8/Compose
是 Ubuntu 的原始撰写文件,应该没有错误。我想它没有打包在 Ubuntu 和 Arch Linux 存储库中是有原因的。
我怀疑这mkcomposecache
是我需要的,即使它会起作用。
有点粗糙,但你可以使用关联数组快速破解一些东西,例如
awk
:对于像这样的输入文件
这个命令
将输出
还要查看它与之冲突的行:
结果:
我对这个扩展进行了逆向工程,并将其制成了一个小网络应用程序。
你可以在这里使用它:https ://jsfiddle.net/9p1s60of/
这是该工具的运行图像: