greatestview

Themen und Projekte aus der Medienwelt

Das Leerzeichen des Todes

Kategorien:

Falls ihr auch mal stundenlang euren Code durchforstet und wirklich nicht versteht, was daran nicht funktioniert, es könnte an einem falschen Leerzeichen liegen. Falsches Leerzeichen? Richtig! Es gibt nämlich einen Unterschied zwischen diesem Leerzeichen → ← und diesem → ←. Wie ihr klar erkennen könnt, ist das zweite Leerzeichen die Wurzel allen Übels!

Angefangen hat alles damit, dass ich mich gewundert habe, warum in Github manche Markdown Listenelemente falsch angezeigt werden:

Hier scheint noch alles gut zu sein…
Hier scheint noch alles gut zu sein…
Doch ein Element will nicht so richtig.
Doch ein Element will nicht so richtig.

Meine erste Vermutung war eine der bekannten Textkorrekturen unter Mac OS-X, denn unter Windows kannte ich dieses Problem nicht. Aber so wichtig war es mir dann doch nicht, ich konnte das Problem immerhin umgehen, indem ich die Leerzeichen in den Listen mit Fn+Leertaste setzte. Als ich diese Woche aber wirklich mehrere Stunden auf einen regulären Ausdruck gestarrt habe und ich dann herausfand, dass sich ein falsches Leerzeichen eingeschlichen hatte, wurde es mir zu viel. Das Leerzeichen wurde gejagt und gestellt, und siehe da, es handelt sich um das No-Break Space mit dem Hex Code 0xA0. Im Gegensatz zu einem normalen Leerzeichen verhindert dieses einen Zeilenumbruch an der Stelle.

Richtiges Leerzeichen
Richtiges Leerzeichen (HEX 0x20)
Böses falsches Leerzeichen
Böses falsches Leerzeichen (HEX 0xA0)

Es ist nun so, dass so gut wie alle Programme mit einem andersartigen Leerzeichen nicht umgehen können und es als Sonderzeichen einstufen, so dass Fehler auftreten, was sehr ärgerlich ist.

Wie kam es jetzt aber dazu, dass sich das falsche Leerzeichen z. B. in meine GitHub Listen einmogeln konnte? Am Ende war die Erklärung doch recht einfach: Es gibt eine Tastenkombination für das non breaking Space unter Mac OS-X, und zwar Alt+Leertaste. Gebe ich nun den Markdown Code für Listen ein, also - [ ] Listenelement, kann es vorkommen, dass eine Hand auf der Alt-Taste liegen bleibt, während die andere das Leerzeichen zwischen den Klammern tippt… Ich war also manchmal einfach zu schnell. Meine Lösung mit Fn+Leertaste stellte sich somit als Placebo heraus, diese Tastenkombination gibt es anscheinend gar nicht. Na gut, am Ende ist man immer schlauer.

Als nächstes wollte ich natürlich wissen, wie man diese Tastenkombination abstellen kann, damit einem so etwas nicht noch mal passiert.

Deaktivieren des No-Break Space in Mac OS-X

Um das falsche Leerzeichen unter Mac OS-X soweit möglich zu deaktivieren, muss man eine Datei ~/Library/KeyBindings/DefaultKeyBinding.dict anlegen oder bearbeiten und folgende Zeile hinzufügen:

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

Das hilft laut dieser Kommentare anscheinend nicht bei allen Programmen, aber immerhin etwas.

Deaktivieren des No-Break Space in Sublime Text

Auch in meinem Lieblingstexteditor Sublime Text kann man das falsche Leerzeichen abstellen, und zwar indem man unter Sublime-Text 2 PreferencesKey Bindings – User folgende Zeile hinzufügt:

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

Zack fertig.

Schreibe einen Kommentar

Kommentare werden moderiert, bitte bleib also nett und freundlich. Deine E-Mail-Adresse wird nicht veröffentlicht. Einfache HTML-Tags sind erlaubt.