我是在 Windows 上使用美国国际键盘通过组合(=连续输入)单引号/双引号和元音来轻松输入特殊字符以获得德语变音符号。
例如,要获取变音符号 Ü:"
,U
而要获取双引号:"
,[space]
在 MacOS 上,我尝试使用登山扣元件来模仿这种行为。
然而,虽然可以轻松地将单个按键映射到多个字符(f
> f
,o
,o
),但反向操作却没有得到很好的记录。
可以映射修饰键和字符键的组合([fn]
,U
)。
但是,为了模拟我的 Windows 美国国际键盘的行为,我需要映射一系列键("
、U
>Ü
和"
、[space]
> "
)。
如何在 Karabiner Elements 中将一个键序列映射到另一个键序列?
答案1
我把这个答案放在这里作为一个框架挑战……
为什么不采用原生的 Mac 方法来做呢 - 这比 Windows 方法简单得多?
Mac 有一系列死键如果你按下 Opt,你可以在键盘查看器中看到标记为橙色的
从这里可以看出,变音符号死键是 U。
如果您想为任何字母添加变音符号 [仅限常规支持的字母,您不能通过这种方式为 Z 添加变音符号,只能添加通常的 ä ë ï ö ü], Opt ⌥ U 然后按要加重音的字母,即 U 本身。这样,按两次键即可得到 ü。
如果您只想要双引号,只需输入双引号, Shift ⇧ ' 这样就会产生“-&”而无需跳过任何步骤。
不必记住一个键可以是“智能”的,而如果你不想让它“智能”,你就必须添加一个空格。
在我看来,这绝对是'不聪明'。
答案2
使用 Karabiner 将其中一个键映射到F15。然后~/Library/KeyBindings/DefaultKeyBinding.dict
使用适当的序列定义创建https://github.com/noel-yap/KeyBindings/blob/main/DefaultKeyBinding.dict,例如:
{
"\UF712" = {
"\U0022" = {
"\U0075" = ("insertText:", "\U00FC"); /* F15, QUOTATION MARK, LATIN SMALL LETTER U: LATIN SMALL LETTER U WITH DIAERESIS */
};
};
}
请注意,虽然很多应用程序(例如 JetBrains 产品)都遵守上述规定,但并非所有应用程序都遵守上述规定。
也可以使用 Karabiner 映射按键序列,但涉及变量来维护状态会更困难。另一方面,使用 Karabiner 定义带有修饰符(例如⎇)的按键组合更容易。