登山扣元素:将按键序列(多个)映射到按键序列

登山扣元素:将按键序列(多个)映射到按键序列

我是在 Windows 上使用美国国际键盘通过组合(=连续输入)单引号/双引号和元音来轻松输入特殊字符以获得德语变音符号。

例如,要获取变音符号 Ü:"U
而要获取双引号:"[space]

在 MacOS 上,我尝试使用登山扣元件来模仿这种行为。

然而,虽然可以轻松地将单个按键映射到多个字符(f> foo),但反向操作却没有得到很好的记录。 可以映射修饰键和字符键的组合[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 定义带有修饰符(例如)的按键组合更容易。

相关内容