为什么使用 Ctrl+Shift+U 时会忽略 ASCII 控制字符?

为什么使用 Ctrl+Shift+U 时会忽略 ASCII 控制字符?

我试图在 Firefox/Chrome 文本框中输入制表符,而无需从 Emacs 复制粘贴。Ctrl+Shift+U 组合键0009不起作用。事实上,它似乎不适用于大多数“控制”字符。然而,它适用于几乎所有可打印字符,包括非 ASCII。这真的很奇怪。谷歌似乎没有透露任何此类不一致的行为。有人知道为什么这种组合会禁止空格吗?我可以在任何程序中重复这种行为,包括 Leafpad 和 LibreOffice。

U+2023: ‣
U+0100: Ā
U+0009: (无)
U+000A: (无)
U+0020: (空格)

答案1

明白了。它以 root 身份而不是我的普通用户身份运行的原因是环境变量GTK_IM_MODULEQT_IM_MODULE被强制xim用于所有普通用户,无论是否运行im-config。我在 Lubuntu 下安装的唯一模块是ibus,所以我对这种奇怪的行为并不感到惊讶。网上的几篇文章引起了我对这些变量的注意,所以我开始围绕它们进行调试。当我注意到它们被xim持续设置为时,我决定ibus在下强制它们为/etc/environment。您可以选择不太激进的选项,将它们设置为.bashrc或一些等效选项。无论如何,这将恢复完整的 Ctrl+Shift+U 功能。

相关内容