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


59

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

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


3
FWIW,在Mac上称为选项键,而不是Alt键。
Chealion

是否可以使终端将nbsp显示为反向字符或某种形式,以便您在键入错误时立即看到它?因为有时候您实际上确实想键入nbsp。

Answers:


59

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

{
"~ " = ("insertText:", " ");
}

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

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


我无法在OSX 10.7上完成这项工作:(
Eemeli Kantola 2012年

4
@EemeliKantola它仍然对我有用,但是您必须重新打开应用程序才能应用更改。终端,Xcode和许多跨平台应用程序不支持DefaultKeyBinding.dict。
Lri 2012年

1
@LauriRanta Terminal似乎支持该DefaultKeyBinding.dict文件。
Ragnar123 2014年

这适用于优胜美地10.10.2。我已经从头开始创建目录和文件。谢谢一群!
Petr Cibulka

1
在El Capitan,OS X 10.11上也为我工作。谢谢!
n2o

14

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

因此,对于所有在代码中都不能破坏空格的人来说,可以将以下自定义键绑定添加到用户键映射("Sublime Text 2 > Preferences > Key Bindings - User")中:

{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } }

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


11

我将iTerm2用于大多数工作,并且可以通过在“首选项”->“键”->“加号”按钮中添加新的组合键,在“键”首选项窗格中添加映射。注意,添加钥匙时,请确保在下方的方框中留出一个空格,如图所示。

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


很好的解决方案!哎呀,我仍然从四岁的帖子中获得有价值的信息。:-)
Malax 2013年

你让我开心!
Enrique Marcos 2014年

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>

3

因为这是Google搜索“如何在Sublime Text中禁用不间断空格”时显示的答案请参阅x3ro的答案),所以我想在Linux上发布Sublime Text的答案。将此添加到您的键绑定:

{ "keys": [" "], "command": "insert_snippet", "args": { "contents": " " } }

转到“首选项”→“键绑定-用户”以编辑您的键绑定。

请注意,其中的空间"keys": [" "]是不间断的空间。

还要注意,此键绑定还会影响小部件,例如搜索框。换句话说,您不能再在搜索框中键入不间断空格,这可能是一个问题。要仅在文本编辑器中禁用不间断空格,请改用以下按键绑定:

{
    "keys": [" "],
    "command": "insert_snippet", "args": { "contents": " " },
    "context": [
        { "key": "setting.is_widget", "operand": false }
    ]
}

3

一种可能全球性解决方案是设置alt- space到别的东西像显示通知中心在系统偏好设置>键盘>快捷方式>任务控制。

在此处输入图片说明



3

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

{ "key": "alt+space", "command": "type", 
                      "when": "editorTextFocus",
                      "args": { "text": " " } }

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


1

对我而言,KeyBindings修复无效。我使用Coda2作为编辑器。我设法找到了替代品,以便与BetterTouchTool一起使用。

BetterTouchTool:“键盘>添加新快捷方式”,然后在“键盘快捷方式”中键入“ alt +空格”,在“触发其他键盘快捷方式”中键入“空格”


谢谢!,Bettertouchtool可以解决所有问题:p
Steven.B,
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.