我在 CentOS 6.1 上使用塞尔维亚拉丁语键盘。当我按Alt Gr+时N,我得到 }。无处不在,除了在 NetBeans 中。
此外,我无法输入任何括号 []{} 或 \|。有没有人遇到过这个问题的解决方案?
不能为每个大括号或其他符号更改键盘。
解决方案是安装 Sun/Oracle Java,然后重新安装 NetBEans。
实际上它是一个 X11/distro 错误。
KDE 或 GTK 应用程序使用它们自己的键盘机制,因此它们不会显示该问题;但是java(以及netbeans)使用X11键盘机制进行输入。
问题在于 X11 如何处理您的语言环境。如果设置正确,它可以工作;如果不是,它不会。X11 没有任何“默认”规则;如果 X11 不知道您的语言环境,那么您将一无所有。此外,X11 语言环境支持也没有太多更新。
X11,为了允许正确的 altgr/compose 规则,必须加载正确的“撰写”文件。它根据语言环境加载(或不加载):在 /usr/share/X11/locale/compose.dir 文件(您的路径可能会有所不同)中有如下行:
en_US.UTF-8/Compose en_US.UTF-8
en_US.UTF-8/Compose sr_CS.UTF-8
en_US.UTF-8/Compose: en_US.UTF-8
en_US.UTF-8/Compose: sr_CS.UTF-8
等等(是的,每个语言环境有两行,有和没有冒号;一个由旧程序使用,另一个由新程序使用;但我不记得哪个是哪个)
您使用的语言环境必须有一行(显示为“locale”命令)。请注意,如果系统使用诸如“en_US.utf8”之类的语言环境,则必须有一个别名(在 locales.alias 文件中);就像是:
sr_CS.utf8 sr_CS.UTF-8
...
sr_CS.utf8: sr_CS.UTF-8
(again, duplicate with and without colon)
To solve your problem, you can either set LC_ALL=en_US.UTF-8 before launching java programs; or edit (you need to be root, and do it at each X11 update) the compose.dir (and locale.dir and/or locale.alias) files, copy the en_US.UTF-8 lines and adapt to your locale. You can also report to your distro so they patch those .dir/.alias files to work properly for all locales provided by the distro.