如何禁用生成特殊字符时,按’ALT + 一’/’选项 + 一’键绑定在 Mac OS (’something + a’) ?

我的苹果电脑里有一个行为,我想禁用它。

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

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

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

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

谢谢你

56728 次浏览

我在同一个 IDE 里遇到了同样的问题。

解决这个问题的方法是从这里下载 Ukulele:

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

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

因此,它将输出相同的字符,但不会被认为是一个死键,所以 Intellij 可以绑定它作为一个快捷方式。

要启用您的新布局,您必须保存到您的 ~/库/键盘布局(它有助于如果您给它一个新的名称与键盘-> 设置键盘名称) ,然后启用它从系统首选项-> 语言和文本。

您可以使用在线工具 从这个网页创建 自定义键盘映射选项-字母都设置为 BLANK。您可以在几乎任何键盘布局的几次单击中创建自定义映射。在 MacOSX 10.7 + 平台上使用了 IntelliJ Ideas,Php/WebStorm,NetBeans,Eclipse。

在表单中选择 “为选项键设置空白”收音机,提交表单,并下载一个打了补丁的键盘布局,禁用“选项”键功能。我正在分享标准美式英语键盘布局的工作文件:

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

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

步骤4可以在不同的 MacOS 版本之间进行轻微的更改。请耐心地在设置中查找键盘布局列表。

下面是塞巴斯蒂安 · 扎哈回答这个问题的详细步骤。

(或 这是我准备好的文件)

  1. 下载 尤克里里
  2. 您可以直接从. dmg 文件运行它
  3. 文件-> 基于当前输入源的新建(我选择了 US)
  4. 单击“修饰符”按钮
  5. 选项栏中包含 左下往下的列表中选择每个修饰符。(也可能有一些像 要么向下,要么向上,但 AFAIK 你可以离开这些。)
    • 像这样按下减号键
  6. 转到键盘菜单-> 设置键盘名称
  7. 以某种方式更改名称,使其更容易识别
  8. 转到文件-> 另存为
  9. 保存到 ~/Library/Keyboard Layouts/带后缀. keylayout
  10. 从你的 Mac OS 帐户注销
  11. 重新登录
  12. 进入系统设置-> 键盘-> 输入源
  13. 点击 + 按钮-> 其他-> 你的新布局应该可用
  14. 添加新的布局
  15. 可能离开原来的键盘布局太和配置一些不错的方式来切换

使用 Ctrl-Alt-<MNEMONIC>.IMHO 要比安装和配置一个单独的应用程序容易得多。

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

下载链接: Https://support.apple.com/kb/dl1572?locale=en_us

它是一个过时的 JRE (基于 Java 6) ,但是到2015年10月,它似乎仍然是我的 JetBrains RubyMine 安装中最好的。(除此之外,键还可以用来插入特殊字符。)

我有办法了! 将文件放置在: ~/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 给出 f。 事实上,我正在使用启用键绑定选项来编写这个答案。 你也可以添加其他你喜欢的键! 官方参考: Https://developer.apple.com/library/mac/documentation/cocoa/conceptual/eventoverview/textdefaultsbindings/textdefaultsbindings.html

下面是一些你可以绑定到的东西: Https://www.hcs.harvard.edu/~jrus/site/selectors.html

哦,顺便说一下,如果您将一个密钥绑定到一个未定义的操作,那么您的应用程序将出现内存泄漏,您的系统将在几秒钟内耗尽内存。在机长身上试验过,很辛苦。

我找到了一个不错的解决办法。 我使用的软件卡拉宾纳改变我的权利进入关键时,控制按下。

因此,iv 所做的就是将选项键重新映射到选项 + 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 并启用“ Change Key”选项卡顶部的选项

Https://pqrs.org/osx/karabiner/

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

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