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

问题描述 投票:111回答:10

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

macos
10个回答
30
投票

我在完全相同的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为其命名),然后从系统偏好设置 - >语言和文本启用它。


-2
投票

只需使用esc键而不是meta,例如meta-x映射到esc-x。


64
投票

您可以使用在线工具from this webpage创建一个自定义键盘映射,其中选项字母全部设置为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版本中略有变化。请耐心等待设置中的键盘布局列表。


30
投票

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

(或者here is a ready made file by me

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

11
投票

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


8
投票

我有一个解决方案!将文件放在:~/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上进行了严格测试。


3
投票

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


2
投票

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

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

这是一个旧的过时的JRE(基于Java 6),但截至2015年10月,它仍然是我的JetBrains RubyMine安装似乎最好的。 (还有别的,键会回到插入特殊字符。)


0
投票

我找到了一个不错的解决方法。我使用Karabiner软件更改我的右键输入键以控制按下时间。

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

将其添加到您的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/


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.