如何在 Mac OS (`⌥+a` ) 中按 `alt+a`/`option+a` 键绑定时禁用生成特殊字符? [关闭]

Posted

技术标签:

【中文标题】如何在 Mac OS (`⌥+a` ) 中按 `alt+a`/`option+a` 键绑定时禁用生成特殊字符? [关闭]【英文标题】:How to disable generating special characters when pressing the `alt+a`/`option+a` keybinding in Mac OS (`⌥+a` )? [closed] 【发布时间】:2012-08-06 06:28:01 【问题描述】:

我试图禁用我的 Mac 中的一种行为。

当我在任何文本编辑器中并使用alt/option+任何字母键入组合键时,输出将是特殊字符。

例如:alt+a 的组合将生成 åalt+x 的组合将生成

我想取消此行为。 我是一名程序员,当我使用我的代码编辑器时,我想将一些键绑定(键盘快捷键)映射到alt 键(例如⌥+a)但是当我这样做时它不会执行,因为它会生成特殊的字符。 我猜这个特殊字符优先于我的代码编辑器快捷方式。

您知道如何禁用此默认行为吗?

谢谢

【问题讨论】:

我正在使用 IntelliJ,我想模拟 emacs 键盘快捷键,并将元映射到选项键。但是当我按下选项-b 时,我确实得到了预期的行为,因为它被解释为一个特殊字符。 如果我使用选项键作为修饰符,我可以在我的 IDE 中定义更多快捷方式,从而显着提高我的工作效率。 在 Mac 上进行如此简单的操作有多么困难,简直太荒谬了。在启动器中放置了错误的应用程序 - 祝你好运,使用 SQL 语句将其删除;想要禁用一些愚蠢的快捷方式 - 开始下载和测试在操作系统版本之间不一致的无数解决方案。天哪,我为什么要买这台糟糕的电脑? 这对我有用:superuser.com/a/942256/535138 对于终端有问题的人,请按照此说明进行操作 -> superuser.com/questions/496090/… 【参考方案1】:

您可以使用在线工具from this webpage 创建一个自定义键盘映射,并将选项字母全部设置为空白。您可以在几乎任何键盘布局中单击几下创建自定义映射。证明可以在 MacOSX 10.7+ 上使用 IntelliJ Idea、php/WebStorm、NetBeans、Eclipse。

在表单中选择“为选项键设置空白”单选,提交表单,然后下载已禁用“选项”键功能的修补键盘布局。我正在共享标准美国英语键盘布局的工作文件:

MacOS <= 10.10 MacOS >= 10.11

启用此自定义映射后,如果您在按下“选项”键的情况下键入字母,则不会将任何内容打印到文本输出中。但是,“选项键按下”由操作系统触发,并由您的 IDE 检测到。因此,您将获得与其他命令键完全相同的行为!

    下载键映射文件My Layout.keylayout。 将其移至~/Library/Keyboard\ Layouts/ 打开System Preferences -> Language Input Methods(或Keyboard -> Input Sources) 转到Input Sources -> (hit +) -> Select Others 您应该在列表中找到My Layout 并选择它。

第 4 步可能会因 MacOS 版本而略有不同。请耐心在设置中查找键盘布局列表。

【讨论】:

@Dan 是的,有一个垂直的语言列表——但这与“布局列表”有什么关系?那里没有“我的布局”——只有..语言.. Dropbox 链接现在似乎已损坏。 无法让它工作。我可以将我的新按键布局添加到列表中,但我无法删除默认的“美国”布局,因此它实际上不会使用我的新按键布局.... 这不再适用于 10.11。我在gist.github.com/haosdent/573ea124e5ea666fc576 中生成了一个布局文件,该文件适用于 10.11 对我不起作用。现在在 IntelliJ 中输入 r,而不是 option+r 输入 ® :(【参考方案2】:

以下是 Sebastian Zaha 回答的详细步骤。 (在我开始工作之前,我最终摸索了一下)。

(或者here is a ready made file by me)

    下载Ukelele 您可以直接从 .dmg 文件运行它 文件 -> 基于当前输入源新建(我选择了美国) 点击修饰符按钮 从列表中选择选项列中具有左下右下的每个修饰符。 (也可能有类似 Either Down OR Up,但 AFAIK 你可以离开这些。) 像这样按减号按钮 转到键盘菜单 -> 设置键盘名称 以某种方式更改名称以使其更易于识别 转到文件 -> 另存为 保存到 ~/Library/Keyboard\Layouts/ 后缀为 .keylayout 从您的 Mac OS 帐户注销 重新登录 转到系统偏好设置 -> 键盘 -> 输入源 点击 + 按钮 -> 其他 -> 您的新布局应该可用 添加新布局 可能也保留原来的键盘布局并配置一些不错的切换方式

【讨论】:

这是唯一对我有用的解决方案,它允许我将组合键重新绑定到类似 Emacs 的命令。 @event_jr,你是如何为 emacs 行为重新绑定它们的?当您按住选项并单击 b 时,它会要求该组合的输出。我们如何告诉它输出是返回一个单词? 正如我在上面评论的那样,这也没有帮助我在优胜美地的 IDEA 中修复快捷方式。恐怕他们在较新的版本中更改了某些内容,现在无法解决此问题。我在 OS X Yosemite 10.10.3 上运行 IntelliJ IDEA 14.1.2 @Innokenty 奇怪。我在 OSX 10.10.3 和 IDEA 14.1.2 上,我的类似 emacs 的绑定工作。我从 Windows 机器上带来了 IDEA 配置,并且 .keylayout 文件是使用一些旧版本的 OSX 构建的。其中之一可能是原因吗? Here is my layout file. 在 OS X 10.10.5 中,我在“选项”列中没有看到任何“左下”或“右下”:只有“向下”。我删除了所有这些,现在在 IntelliJ 中可以使用 Emacs 样式的键绑定。我希望我能理解删除这些行的含义,但是如果我遇到麻烦很容易切换输入法,我会用它。谢谢。【参考方案3】:

我在完全相同的 IDE 中遇到了完全相同的问题。

解决方法是从这里下载 Ukulele:

http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=ukelele

在应用程序中,您可以使用 File -> New from current source 创建新的按键布局。按 Option 将在 Option-b 的位置显示一个红色键 - 表示它是一个 死键。双击它将允许您将其从死键更改为输出键。当提示输入输出时,您可以输入相同的内容(按 Option-b)。

因此它将输出相同的字符但不会被视为死键,因此 Intellij 可以将其绑定为快捷方式。

要启用您的新布局,您必须将其保存到您的 ~/Library/Keyboard Layouts(如果您使用 Keyboard -> Set Keyboard Name 给它一个新名称会有所帮助),然后启用它从系统偏好设置 -> 语言和文本。

【讨论】:

这项工作量很大,只修复了一个应用程序中的一个键组合。我和至少其他一些人希望全面禁用 opt 作为 mac 上的特殊字符输入。 @javadba 在我做对之后并没有那么糟糕。请参阅下面的答案,了解应该可以快速点击的详细步骤。 I added an answer with detailed steps @SebastianZaha 在此答案中描述的内容。我最终摸索了一下才能完成它,所以希望它可以为某人(以及后来的我)节省一些麻烦。【参考方案4】:

使用Ctrl-Alt-&lt;MNEMONIC&gt;。恕我直言,比必须安装和配置单独的应用程序要容易得多。

【讨论】:

很高兴知道。但是,如果 Ctrl-Alt- 组合键也有功能,这并不完全令人满意。 因为 IDE 的 CTRL+ALT 可能已经被使用了,所以你必须重新配置你的 IDE,这和配置其他应用程序一样痛苦。 如果你问 JetBrains,你会得到这个答案【参考方案5】:

我有办法! 将文件放在:~/Library/KeyBindings/DefaultKeyBinding.dict 为:

/* ~/Library/KeyBindings/DefaultKeyBinding.dict */
 
    /* Additional Emacs bindings */
    "~f" = "moveWordForward:";
    "~b" = "moveWordBackward:";
    "~<" = "moveToBeginningOfDocument:";
    "~>" = "moveToEndOfDocument:";
    "~v" = "pageUp:";
    "~d" = "deleteWordForward:";
    "~^h" = "deleteWordBackward:";
    "~\010" = "deleteWordBackward:";  /* Option-backspace */
    "~\177" = "deleteWordBackward:";  /* Option-delete */

    /* Escape should really be complete: */
    "\033" = "complete:";  /* Escape */        

它将隐藏原始文本输入。但是您仍然可以通过在组合之前使用 Ctrl-Q 来获得它。 例如,Ctrl-Q Alt-f 给了我 ƒ。 实际上,我在启用选项键绑定的情况下编写此答案。 您还可以添加其他您喜欢的键!官方参考: https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/TextDefaultsBindings/TextDefaultsBindings.html

以下是您可以绑定到的内容的一个很好的列表: https://www.hcs.harvard.edu/~jrus/site/selectors.html

哦,顺便说一句,如果您将键绑定到未定义的操作,您的应用程序将发生内存泄漏,并且您的系统将在几秒钟内耗尽内存。在 el capitan 上进行了艰苦的测试。

【讨论】:

【参考方案6】:

我在带有 VSCode 的新 Macbook 上遇到了同样的问题,在我的旧 Macbook 上运行良好。当我输入 alt-shift-f 格式时,我得到了 unicode。我意识到不同之处在于我的旧 Macbook 具有英式键盘设置,而不是默认的“ABC - 扩展”。添加英式键盘为我解决了这个问题。

【讨论】:

我试过了,但在 Intellij IDEA 中仍然有一个令人讨厌的 Option+N 字符。【参考方案7】:

使用 Apple JRE,Option 键组合将用作快捷方式,而不是插入特殊字符。

下载链接: https://support.apple.com/kb/DL1572?locale=en_US

这是一个过时的 JRE(基于 Java 6),但截至 2015 年 10 月,它似乎仍然是我安装的 JetBrains RubyMine 最有效的方法。 (除此之外,键返回到插入特殊字符。)

【讨论】:

【参考方案8】:

使用ABC作为输入法而不是ABC-Extended,那么option + [char] 将能够使用应用程序快捷方式而不是显示特殊字符。

【讨论】:

这个答案帮助了我,而不是 ABC-Locale 或 ABC-Extended,我使用了 ABC【参考方案9】:

我找到了一个不错的解决方法。 我使用软件Karabiner来更改我的右回车键以控制按住时。

所以 iv 所做的是将选项键重新映射到 option+cmd+control,因为我不知道有任何命令使用所有三个修饰符。现在我可以在没有任何字符的情况下映射正确的快捷方式。但如果需要,您也可以映射到其他键

将此添加到您的 private.xml:(在根目录之间)

<item>
<name>Change option Key to cmd + control + option</name>
<identifier>private.optiontoelse</identifier>
<autogen>__KeyToKey__ 
    KeyCode::OPTION_L, 
    KeyCode::OPTION_L, ModifierFlag::CONTROL_L | ModifierFlag::COMMAND_L</autogen>
<autogen>__KeyToKey__ 
    KeyCode::OPTION_R, 
    KeyCode::OPTION_R, ModifierFlag::CONTROL_R | ModifierFlag::COMMAND_R</autogen>
</item>

然后重新加载 xml 并启用“更改密钥”选项卡顶部的选项

https://pqrs.org/osx/karabiner/

【讨论】:

对于使用 json 而不是 xml 并且对于较新的 MacOS 版本是必需的 Karabiner-Elements,请使用此模板:gist.github.com/ijoseph/dd136b7bdf622bbe54f7339db052df5e

以上是关于如何在 Mac OS (`⌥+a` ) 中按 `alt+a`/`option+a` 键绑定时禁用生成特殊字符? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何安装Git到MAC OS X

如何使用虚拟机安装MAC OS X操作系统

mac os intellij如何快路查看一个java类的所有方法,结构

Mac OS X下安装nvm的方法

ruby运行环境怎么在mac os x上安装

如何在 Mac OS X 上装设 LaTeX 以及 CJK 套件