![为什么使用 Ctrl+Shift+U 时会忽略 ASCII 控制字符?](https://linux22.com/image/1130039/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BD%BF%E7%94%A8%20Ctrl%2BShift%2BU%20%E6%97%B6%E4%BC%9A%E5%BF%BD%E7%95%A5%20ASCII%20%E6%8E%A7%E5%88%B6%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
我试图在 Firefox/Chrome 文本框中输入制表符,而无需从 Emacs 复制粘贴。Ctrl+Shift+U 组合键0009
不起作用。事实上,它似乎不适用于大多数“控制”字符。然而,它适用于几乎所有可打印字符,包括非 ASCII。这真的很奇怪。谷歌似乎没有透露任何此类不一致的行为。有人知道为什么这种组合会禁止空格吗?我可以在任何程序中重复这种行为,包括 Leafpad 和 LibreOffice。
U+2023
: ‣
U+0100
: Ā
U+0009
: (无)
U+000A
: (无)
U+0020
: (空格)
答案1
明白了。它以 root 身份而不是我的普通用户身份运行的原因是环境变量GTK_IM_MODULE
和QT_IM_MODULE
被强制xim
用于所有普通用户,无论是否运行im-config
。我在 Lubuntu 下安装的唯一模块是ibus
,所以我对这种奇怪的行为并不感到惊讶。网上的几篇文章引起了我对这些变量的注意,所以我开始围绕它们进行调试。当我注意到它们被xim
持续设置为时,我决定ibus
在下强制它们为/etc/environment
。您可以选择不太激进的选项,将它们设置为.bashrc
或一些等效选项。无论如何,这将恢复完整的 Ctrl+Shift+U 功能。