Как отключить комбинацию клавиш Option-Space для неразрывных пробелов?

59

Как отключить надоедливую комбинацию клавиш Option-Space для неразрывных пробелов?

Это очень очень раздражает в Eclipse или терминале, так как я часто печатаю неразрывный пробел вместо обычного.

Malax
источник
3
FWIW, это называется клавишей выбора, а не клавишей alt на Mac.
Chealion
Можно ли сделать так, чтобы Терминал отображал nbsp в качестве обратного символа или какого-то другого вида, чтобы вы могли сразу увидеть его, когда наберете ошибку? Потому что несколько раз вы на самом деле действительно хотите набрать NBSP.
forthrin

Ответы:

61

Сделайте так, чтобы ваш ~/Library/KeyBindings/DefaultKeyBinding.dictфайл выглядел следующим образом (если он не существует, создайте его, если в нем уже есть привязки, просто добавьте один из приведенных ниже):

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

Что это делает? Каждый раз, когда вы нажимаете Option-Space вместо вставки неразрывного пробела, OS X теперь вставляет обычный пробел. Проблема исправлена.

Вам необходимо перезагрузить устройство, чтобы применить это изменение.

Мартин С.
источник
Я не мог получить эту работу на OSX 10.7 :(
Eemeli Kantola
4
@EemeliKantola Это все еще работает для меня, но вы должны заново открыть приложения, чтобы применить изменения. Terminal, Xcode и многие кроссплатформенные приложения не поддерживают DefaultKeyBinding.dict.
Lri
1
Терминал @LauriRanta, кажется, поддерживает DefaultKeyBinding.dictфайл.
Ragnar123
Это работает на Йосемити 10.10.2. Я создал каталог и файл с нуля. Огромное спасибо!
Петр Сибулька
1
Также работал для меня на El Capitan, OS X 10.11. Спасибо!
n2o
15

Как упоминалось в комментариях, решение, предоставленное Мартином, не работает в некоторых приложениях, что особенно важно (для меня) в моем редакторе Sublime Text 2.

Таким образом, для всех вас, кто обеспокоен тем, что в вашем коде нет пробелов, вы можете добавить следующую пользовательскую привязку клавиш в вашу пользовательскую таблицу ключей ( "Sublime Text 2 > Preferences > Key Bindings - User"):

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

Это вставит обычный пробел вместо неразрывного.

fresskoma
источник
11

Я использую iTerm2 для большей части своей работы, и сопоставление можно добавить на панели настроек «Ключи», добавив новую комбинацию клавиш в «Предпочтения» -> «Ключи» -> кнопка «плюс». Обратите внимание, при добавлении ключа не забудьте поставить один пробел в нижнем поле, как показано на рисунке.

скриншот добавления сочетания клавиш

Саймон Уолкер
источник
Очень хорошее решение! Черт возьми, я все еще получаю ценную информацию из четырехлетней почты. :-)
Малакс
Ты сделал мой день!
Энрике Маркос
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>
LRI
источник
3

Так как это ответ, который Google показывает вам при поиске «Как отключить неразрывные пробелы в Sublime Text» ( см. Ответ x3ro ), я решил опубликовать ответ для Sublime Text в Linux. Добавьте это к вашим привязкам клавиш:

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

Перейдите в «Настройки» → «Привязки клавиш - Пользователь», чтобы изменить привязки клавиш.

Обратите внимание, что пробел в "keys": [" "]является неразрывным пробелом.

Также обратите внимание, что эта привязка ключа также влияет на виджеты, такие как окно поиска. Другими словами, вы больше не можете вводить неразрывные пробелы в поле поиска, что может быть проблемой. Чтобы отключить неразрывные пробелы только в текстовом редакторе, используйте эту привязку клавиш:

{
    "keys": [" "],
    "command": "insert_snippet", "args": { "contents": " " },
    "context": [
        { "key": "setting.is_widget", "operand": false }
    ]
}
Hubro
источник
3

Возможное глобальное решение заключается в наборе alt- spaceчто - то другое , как Show Notification Center в System Preferences> Клавиатура> Сочетания клавиш> управления полетами.

введите описание изображения здесь

Ари П
источник
3

Используя OSX Sierra (10.12.6), и решил эту проблему очень просто, используя Karabiner-Elements:

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

После открытия перейдите в «Сложные модификации»> «Добавить правило»> «Импортировать дополнительные правила из Интернета» и загрузите правило «Отключить alt + пробел (неразрывный пробел)». Добавьте его, и все готово!

Терье Андерсен
источник
3

Я также не смог заставить работать KeyBindings. Как и в случае с возвышенным ответом, я настроил свой редактор (VS Code) для вставки обычного пробела, добавив

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

на мой глобальный keybindings.json( Preferences: Open Keyboard Shortcuts Fileв палитре команд).

user2361830
источник
1

Для меня исправление KeyBindings не сработало. Я использую Coda2 в качестве редактора. Мне удалось получить замену для работы с BetterTouchTool, хотя.

BetterTouchTool: «Клавиатура> Добавить новый ярлык», затем введите «alt + space» в «Сочетание клавиш» и «Пробел» в «Инициировать другие сочетания клавиш»

Шон Грюнбек
источник
Спасибо! На сайте bettertouchtool есть решение всех проблем: p
Steven.B