osx mavericks键盘扫描码映射到与语言映射无关的相同字符

时间:2016-02-13 08:27:18

标签: macos layout keyboard language-agnostic scancodes

在我的用户配置文件中,键盘键入与键盘语言设置无关的相同字符。

使用这四个组合键始终生成相同的字符:

alt-7 {
alt-8 [
alt-9 ]
alt-0 }

我的默认布局是德语,因此它应该是| { } ≠

但即使在英语和Neo Layout上,无论是在终端还是在任何其他本机应用程序中,组合键都会生成相同的四个字符。使用屏幕键盘概述显示相同的行为。我可以在屏幕键盘上看到Pipe字符,但它键入了一个大括号。

呈现正确字符的唯一应用程序是Intellij Idea。我怀疑可能JavaIdea可能直接访问scancodes

同一台计算机上的另一个用户帐户没有显示该行为(键盘呈现预期的字符),因此它必须是我的用户配置文件特有的。

我已经进行了大量的谷歌搜索,但我找不到的是scancodesOSX的字符在用户个人资料库中{{1}}的工作原理。

因为能够输入'|'性格对我来说至关重要我非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我找到了它:几年前,当我尝试在我的Mac上使用Windows键盘键入VirtualMachine时,我确实创建了自己的问题。对我感到羞耻。

这是解决方案。在我的主目录中是文件 〜/库/键绑定/ DefaultKeyBinding.dict

使用以下条目:

{
"\UF729"  = "moveToBeginningOfLine:"; /* pos1 */
"^\UF729" = "moveToBeginningOfDocument:"; /* crtl + pos1 */
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";
"\UF72b"  = "moveToEndOfLine:"; /* end */
"^\UF72B" = "moveToEndOfDocument:"; /* ctrl + end */
"$\UF72B" = "moveToEndOfLineAndModifySelection:";
"\UF72C"  = "pageUp:";
"\UF72D"  = "pageDown:";
"^~7" = ("insertText:", "|"); /* orig alt 7 */
"^~8" = ("insertText:", "{"); /* orig alt 8 */
"^~9" = ("insertText:", "}"); /* orig alt 9 */
"^\U00DF" = ("insertText:", "\U00BF");
"^+" = ("insertText:", "\U00B1");
"~<" = ("insertText:", "|");
"~7" = ("insertText:", "{");
"~0" = ("insertText:", "}");
"~8" = ("insertText:", "[");
"~9" = ("insertText:", "]");
"~+" = ("insertText:", "~");
"~\U00DF" = ("insertText:", "\U005C");
"~q" = ("insertText:", "@");
"^x" = "cut:";
"^c" = "copy:";
"^v" = "paste:";
}