如何在Mac OS X中按选项键时禁用键入特殊字符?

xim*_*myu 120 macos

现在当我按下选项-b时,我会得到∫.我不需要输入特殊字符,需要将option-b映射到某些应用程序的快捷方式.有没有办法做到这一点?

Dan*_*Dan 67

您可以使用此网页上的在线工具创建一个自定义键盘映射,其中选项字母全部设置为BLANK.几乎任何键盘布局都可以通过几次单击创建自定义映射.事实证明,使用IntelliJ Idea,Php/WebStorm,NetBeans,Eclipse可以在MacOSX 10.7+上运行.

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

启用此自定义映射后,如果键入按下"选项"键的字母,则不会向文本输出打印任何内容.但是,"选项按键"由OS触发,并由IDE检测到.因此,您获得与其他命令键完全相同的行为!

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

步骤4可以在MacOS版本中略有变化.请耐心等待设置中的键盘布局列表.

  • 这在10.11中不起作用了.我在https://gist.github.com/haosdent/573ea124e5ea666fc576中生成一个布局文件,该文件在10.11中有效 (12认同)
  • Dropbox链接现在显示为已损坏. (5认同)
  • 无法让这个工作.我可以将新的键布局添加到列表中,但我无法删除默认的"美国"布局,因此它实际上不会使用我的新键布局.... (2认同)
  • 没有为我工作。现在它在 IntelliJ 中输入了 `r`,而不是 option+r 键入 `®` :( (2认同)

小智 31

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

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

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

在应用程序中,您可以使用文件 - >当前源中的新建来创建新的键布局.按选项将在Option-b的位置显示红色键 - 这意味着它是一个死键.双击它将允许您将其从死键更改为输出键.当提示您输出时,您可以输入相同的内容(通过按Option-b).

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

要启用新布局,必须将其保存到〜/ Library/Keyboard Layouts(如果您使用Keyboard - > Set Keyboard Name为其命名),然后从系统偏好设置 - >语言和文本启用它.

  • 这是一项很多工作,只修复了一个应用程序中的一个关键组合.我和至少其他一些人希望全面禁用opt作为mac上的特殊字符输入. (13认同)

Pet*_*erg 31

以下是Sebastian Zaha回答的详细步骤.(在我开始工作之前,我最后笨手笨脚).

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

  1. 下载Ukelele
  2. 您可以直接从.dmg文件运行它
  3. 文件 - >基于当前输入源的新功能(我选择了美国)
  4. 单击"修改器"按钮
  5. 从列表中选择Option列中包含Left DownRight Down的每个修饰符.(可能有一些像Either Down OR Up,但AFAIK你可以留下那些.)
    • 像这样按每个减号按钮
  6. 转到键盘菜单 - >设置键盘名称
  7. 以某种方式更改名称,以便更容易识别
  8. 转到文件 - >另存为
  9. 保存到〜/ Library/Keyboard\Layouts /后缀为.keylayout
  10. 从Mac OS帐户注销
  11. 重新登录
  12. 转到系统偏好设置 - >键盘 - >输入源
  13. 按+按钮 - >其他 - >您的新布局应该可用
  14. 添加新布局
  15. 可能也会留下原始键盘布局并配置一些很好的切换方式

  • 这是唯一对我有用并允许我将组合键重新绑定到类似 Emacs 的命令的解决方案。 (3认同)
  • @Innokenty 奇怪。我使用的是 OSX 10.10.3 和 IDEA 14.1.2,并且我的类似 emacs 的绑定可以工作。我从 Windows 机器上引入了 IDEA 配置,并且 .keylayout 文件是使用某些旧版本的 OSX 构建的。原因可能是其中之一吗?[这是我的布局文件。](http://pelam.fi/osx/USKeylayout_custom_no_alt.keylayout) (2认同)

小智 11

使用Ctrl-Alt-<MNEMONIC>.恕我直言比安装和配置单独的应用程序要容易得多.

  • 对于IDE,可能已经使用了CTRL + ALT,因此您必须重新配置IDE,这与配置其他应用程序同样痛苦. (4认同)
  • 很高兴知道.但是,如果Ctrl-Alt-键组合具有功能,则这并不完全令人满意. (2认同)

Wun*_*ugh 8

我有一个解决方案!将文件放在:~/Library/KeyBindings/DefaultKeyBinding.dictas:

/* ~/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 */        
}
Run Code Online (Sandbox Code Playgroud)

它将隐藏原始文本输入.但是你仍然可以通过在组合之前使用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上进行了严格测试.


cho*_*kie 8

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

  • 我使用键盘布局“Unicode Hex Input”(在“其他”下)。它看起来与美国布局相同,但替代组合被空白。 (4认同)