Wie deaktiviere ich die nervige Tastenkombination "Option-Leerzeichen" für nicht unterbrechende Leerzeichen?
Dies ist sehr, sehr ärgerlich in Eclipse oder im Terminal, da ich häufig den nicht unterbrechenden Raum anstelle eines regulären eintippe.
Wie deaktiviere ich die nervige Tastenkombination "Option-Leerzeichen" für nicht unterbrechende Leerzeichen?
Dies ist sehr, sehr ärgerlich in Eclipse oder im Terminal, da ich häufig den nicht unterbrechenden Raum anstelle eines regulären eintippe.
Antworten:
Lass deine ~/Library/KeyBindings/DefaultKeyBinding.dict
Datei so aussehen (falls sie noch nicht existiert, erstelle sie, falls sie bereits Bindungen enthält, füge einfach die von unten hinzu):
{
"~ " = ("insertText:", " ");
}
Was macht das? Jedes Mal, wenn Sie Option-Leertaste drücken, anstatt ein nicht unterbrechendes Leerzeichen einzufügen, fügt OS X jetzt ein reguläres Leerzeichen ein. Problem gelöst.
Sie müssen das Gerät neu starten, um diese Änderung zu übernehmen.
DefaultKeyBinding.dict
Datei zu unterstützen .
Wie in den Kommentaren erwähnt, funktioniert die von Martin bereitgestellte Lösung in einigen Anwendungen nicht, am wichtigsten (für mich) in meinem Editor, Sublime Text 2.
Für alle, die keine Leerzeichen in Ihrem Code benötigen, können Sie die folgende benutzerdefinierte Tastenkombination in Ihre Benutzer-Tastaturbelegung ( "Sublime Text 2 > Preferences > Key Bindings - User"
) einfügen :
{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } }
Dadurch wird ein reguläres Leerzeichen anstelle eines nicht unterbrechenden eingefügt.
Ich benutze iTerm2 für den größten Teil meiner Arbeit und das Mapping kann im Einstellungsbereich "Schlüssel" hinzugefügt werden, indem eine neue Tastenkombination unter Einstellungen -> Schlüssel -> die Plus-Schaltfläche hinzugefügt wird. Beachten Sie, dass Sie beim Hinzufügen des Schlüssels ein einzelnes Leerzeichen in das untere Feld einfügen müssen (siehe Abbildung).
Sie können auch ein benutzerdefiniertes Tastaturlayout mit Ukelele erstellen (siehe https://superuser.com/a/515151 ) oder KeyRemap4MacBook verwenden :
<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>
Da dies die Antwort ist, die Google Ihnen zeigt, wenn Sie nach "Deaktivieren von nicht unterbrechenden Leerzeichen in Sublime Text" suchen ( siehe x3ros Antwort ), dachte ich, ich würde die Antwort für Sublime Text unter Linux veröffentlichen. Fügen Sie dies zu Ihren Tastenkombinationen hinzu:
{ "keys": [" "], "command": "insert_snippet", "args": { "contents": " " } }
Gehen Sie zu "Einstellungen" → "Tastenkombinationen - Benutzer", um Ihre Tastenkombinationen zu bearbeiten.
Beachten Sie, dass das Leerzeichen in "keys": [" "]
ein nicht unterbrechendes Leerzeichen ist.
Beachten Sie außerdem, dass diese Schlüsselbindung auch Widgets wie das Suchfeld betrifft. Mit anderen Worten, Sie können keine nicht unterbrechenden Leerzeichen mehr in Ihr Suchfeld eingeben, was ein Problem sein könnte. Verwenden Sie stattdessen die folgende Schlüsselbindung, um nicht unterbrechende Leerzeichen nur im Texteditor zu deaktivieren:
{
"keys": [" "],
"command": "insert_snippet", "args": { "contents": " " },
"context": [
{ "key": "setting.is_widget", "operand": false }
]
}
Verwenden Sie OSX Sierra (10.12.6) und lösen Sie dieses Problem ganz einfach mit Karabiner-Elements:
https://github.com/tekezo/Karabiner-Elements
Gehen Sie nach dem Öffnen zu "Komplexe Änderungen"> "Regel hinzufügen"> "Weitere Regeln aus dem Internet importieren" und laden Sie die Regel "Alt + Leertaste (nicht unterbrechendes Leerzeichen) deaktivieren" herunter. Füge es hinzu und du bist fertig!
Ich konnte auch nicht den KeyBindings-Fix zum Laufen bringen. Ähnlich wie bei der Sublime-Antwort habe ich meinen Editor (VS-Code) so konfiguriert, dass durch Hinzufügen ein normales Leerzeichen eingefügt wird
{ "key": "alt+space", "command": "type",
"when": "editorTextFocus",
"args": { "text": " " } }
zu meinem globalen keybindings.json
( Preferences: Open Keyboard Shortcuts File
in der Befehlspalette).
Bei mir hat der KeyBindings Fix nicht funktioniert. Ich benutze Coda2 als Editor. Ich habe es jedoch geschafft, den Ersatz für BetterTouchTool zu finden.
BetterTouchTool: "Tastatur> Neue Tastenkombination hinzufügen", dann "Alt + Leertaste" in "Tastenkombination" und "Leertaste" in "Andere Tastenkombination auslösen" eingeben