如何禁用不间断空格的 Option-Space 组合键?

Mal*_*lax 69 mac keyboard-shortcuts macos

如何为不间断空格禁用烦人的 Option-Space 组合键?

这在 Eclipse 或终端中非常烦人,因为我经常输入不间断空格而不是常规空格。

小智 64

使您的~/Library/KeyBindings/DefaultKeyBinding.dict文件看起来像这样(如果它不存在,则创建它,如果其中已经存在绑定,只需从下面添加一个):

{
"~ " = ("insertText:", " ");
}
Run Code Online (Sandbox Code Playgroud)

这有什么作用?每次按 Option-Space 而不是插入一个不间断空格 OS X 现在会插入一个常规空格。问题已解决。

您需要重新启动设备才能应用此更改。

  • @EemeliKantola 它对我仍然有效,但您必须重新打开应用程序才能应用更改。终端、Xcode 和许多跨平台应用程序不支持 DefaultKeyBinding.dict。 (4认同)

fre*_*oma 16

正如评论中提到的,Martin 提供的解决方案在某些应用程序中不起作用,最重要的是(对我而言)在我的编辑器 Sublime Text 2 中。

因此,对于所有因代码中没有中断空格而困扰的人,您可以将以下自定义键绑定添加到您的用户键盘映射 ( "Sublime Text 2 > Preferences > Key Bindings - User") 中:

{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } }
Run Code Online (Sandbox Code Playgroud)

这将插入一个常规空格而不是不间断空格。


Sim*_*ker 12

我的大部分工作都使用 iTerm2,并且可以通过在“首选项”->“键”->“加号”按钮中添加新的组合键,在“键”首选项窗格中添加映射。请注意,添加密钥时,请确保在下方框中放置一个空格,如图所示。

添加键盘快捷键的屏幕截图


Lri*_*Lri 6

您还可以使用 Ukelele 创建自定义键盘布局(请参阅https://superuser.com/a/515151)或使用KeyRemap4MacBook

https://github.com/tekezo/KeyRemap4MacBook/blob/master/src/core/server/Resources/include/checkbox/standards/space.xml

<item>
  <name>Non-Breaking Space to Normal Space</name>
  <appendix>(Option+Space to Space)</appendix>
  <appendix>(Option+Shift+Space to Space)</appendix>
  <identifier>remap.option_space_to_space</identifier>
  <autogen>__KeyToKey__ KeyCode::SPACE, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | ModifierFlag::NONE, KeyCode::SPACE</autogen>
  <autogen>
    __KeyToKey__
    KeyCode::SPACE, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_SHIFT | ModifierFlag::NONE,
    KeyCode::SPACE,
  </autogen>
</item>
Run Code Online (Sandbox Code Playgroud)


小智 6

使用 OSX Sierra (10.12.6),并使用 Karabiner-Elements 轻松解决了这个问题:

https://github.com/tekezo/Karabiner-Elements

打开后,转到“复杂修改”>“添加规则”>“从 Internet 导入更多规则”,然后下载“禁用 alt+空格键(不间断空格)”规则。添加它,就完成了!


小智 6

我也无法使 KeyBindings 修复工作。类似于 Sublime 的答案,我最终配置了我的编辑器(VS Code),通过添加

{ "key": "alt+space", "command": "type", 
                      "when": "editorTextFocus",
                      "args": { "text": " " } }
Run Code Online (Sandbox Code Playgroud)

到我的全局keybindings.jsonPreferences: Open Keyboard Shortcuts File在命令面板中)。