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


129

现在,当我按Option-b时,将得到∫。我不需要键入特殊字符,也不需要将option-b映射到某些应用程序的快捷方式。有什么办法吗?


26
我正在使用IntelliJ,我想模拟emacs键盘快捷键,并将meta映射到选项键。但是当我按下选项b时,确实得到了预期的行为,因为它被解释为特殊字符。
ximyu 2012年

3
如果使用选项键作为修饰符,则可以在IDE中定义更多快捷方式,从而极大地提高了生产率。
2013年

25
在Mac上进行如此简单的操作有多难,简直荒谬。在启动器中放置了错误的应用-祝您使用SQL语句将其删除;要禁用一些愚蠢的快捷方式-开始下载和测试在操作系统版本之间不一致的大量解决方案。天哪,为什么我要买这台糟糕的计算机?
瓦西里(Vasiliy)

3
这对我
有用

1
对于具有对终端问题的人,按照使用说明- > superuser.com/questions/496090/...
A-letubby

Answers:


33

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

解决方案是从此处下载尤克里里琴:

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(如果使用键盘->设置键盘名称给它起一个新名称,则将很有帮助),然后从系统偏好设置->语言和文本中启用它。


15
这是很多工作,并且只能在一个应用程序中修复一个按键组合。我和至少其他一些人希望全面禁用opt作为mac上的特殊字符输入。
javadba 2014年

@javadba在我理解正确之后,还不错。请参阅以下我的答案以获取详细的步骤,这些步骤应该可以快速单击。
Peter Lamberg 2014年

为@SebastianZaha在此答案中描述的内容添加了详细步骤的答案。我最终花了一些时间来完成它,所以希望它可以为某人(后来是我)省些麻烦。
Peter Lamberg 2014年

74

您可以使用此网页上的在线工具创建一个自定义键盘映射,其中选项字母全部设置为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在列表中找到并选择它。

在MacOS版本之间,步骤4可能会稍有变化。请耐心在设置中找到键盘布局列表。


1
@javadba,我已经纠正了我的答案。感谢您的反馈意见!!新的操作系统版本可能会改变事情。
2014年

5
现在,保管箱链接似乎已损坏。
安德鲁·怀特

2
无法使它正常工作。我可以在我的新的按键布局添加到列表中,但我不能删除默认的“美”的布局,因此它不会实际使用我的新的按键布局....
AgmLauncher

12
这在10.11中不再起作用。我在gist.github.com/haosdent/573ea124e5ea666fc576中生成了一个布局文件,该文件适用于10.11
haosdent

1
没为我工作。®现在,它不再使用option + r键入,而是键入rIntelliJ :(
Navin

35

以下是塞巴斯蒂安·扎哈(Sebastian Zaha)回答的详细步骤。(在完成这项工作之前,我最终摸索了一下)。

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

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

1
这是唯一对我有用的解决方案,它允许我将按键组合重新绑定到类似Emacs的命令。
event_jr 2014年

@event_jr,您如何将它们重新绑定为emacs行为?当您按住Option键并单击b时,它将要求输出该组合。我们如何告诉它输出要返回一个单词?
萨哈斯2015年

1
正如我在上面评论的那样,这也没有帮助我在优胜美地的IDEA中修复快捷方式。恐怕他们在较新的版本中做了一些更改,现在无法解决此问题。我在OS X Yosemite 10.10.3上运行IntelliJ IDEA 14.1.2
Innokenty,

1
@Innokenty奇怪。我在OSX 10.10.3和IDEA 14.1.2上,我的类似于emacs的绑定起作用。我从Windows机器上带来了IDEA配置,并且.keylayout文件是使用某些旧版本的OSX构建的。这些可能是原因之一吗?这是我的布局文件。
彼得·兰伯格

1
在OS X 10.10.5中,我在“选项”列中没有看到任何“向左移”或“向右移”:只有“向下移”。我删除了所有这些内容,现在在IntelliJ中使用了Emacs样式的键绑定。我希望我理解删除这些行的含义,但是由于遇到麻烦很容易切换输入法,因此我将继续进行下去。谢谢。
Duelin markers'Aug

12

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


2
很高兴知道。但是,如果Ctrl-Alt-组合键也具有功能,则不能完全令人满意。
彼得·兰伯格2015年

4
因为IDE的CTRL + ALT很可能已经被使用,所以您必须重新配置IDE,这与必须配置其他应用程序是同样痛苦的。
ARKBAN

如果您询问JetBrains,此答案便是您得到的
Kirby

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 */        
}

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


5

我在使用VSCode的新Macbook上遇到了相同的问题,该问题在我的旧Macbook上运行良好。当我输入alt-shift-f作为格式时,我得到了unicode。我意识到区别是我的旧Macbook具有英国键盘设置,而不是默认的“ ABC-Extended”。添加英式键盘可以解决此问题。


我尝试了此操作,但在Intellij IDEA中,例如Option + N仍然令人讨厌。
阿米尔·埃尔多

2

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

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

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


0

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

因此,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/


-2

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


这个答案对我有帮助,我使用了ABC
代号Jack

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.