Wenn ich auf meinem Mac das Pipe-Zeichen (|) gefolgt von einem Leerzeichen verwende, wird häufig ein unsichtbares Zeichen dazwischen eingefügt.
Dies ist besonders ärgerlich, wenn Sie das Terminal verwenden, da dadurch Befehle ungültig werden.
Wenn ich in iterm2 Folgendes eingebe, erhalte ich häufig Folgendes:
ls | cat
zsh: command not found: cat
Wenn ich die Nach-oben-Taste drücke, um meinen vorherigen Befehl abzurufen, und dann das Leerzeichen zwischen |
und entferne und wieder einfüge cat
, funktioniert der Befehl.
Wenn ich kopiere, füge die funktionierenden und nicht funktionierenden Befehle wie folgt in eine Datei ein:
non-working: ls | cat
working: ls | cat
und öffne es in Hex Fiend es zeigt folgendes:
non-working: ls | cat
working: ls | cat
Ich habe auch die gleiche Art von Problem in SublimeText2 festgestellt, bei dem die eckigen Klammern ( []) gefolgt von einem Leerzeichen verwendet wurden. Ich glaube nicht, dass es ein Problem mit iTerm2 ist.
quelle
Antworten:
Was passiert, ist, dass Sie ⌥die Leertaste gedrückt halten , wodurch ein nicht unterbrechendes Leerzeichen eingefügt wird , das in HTML durch die
Referenz bekannt ist. Dieses geschützte Leerzeichen ist nützlich bei der Textverarbeitung, bei der bestimmte Wörter zusammengehalten werden sollen, z. B. "OS" und "X" in "OS X".Offensichtlich handelt es sich hierbei um ein Unicode-Zeichen (
00A0
). Daher schlagen die meisten Befehlszeilendienstprogramme fehl, z. B. das Anzeigen von Bashs_cat
(wo_
sich das nicht unterbrechende Leerzeichen befindet) und Hex Fiend, das nur eine schlechte Darstellung verwendet. Einige Editoren entfernen es nur stillschweigend (z. B. dieser Editor hier), während andere sogar eine spezielle Darstellung dafür haben (z. B. TextMate zeigt einen Punkt anstelle des Leerzeichens).Es gibt zwei Lösungen:
Achten Sie mehr darauf, die ⌥Taste loszulassen, wenn Sie die Leertaste drücken. Übrigens: Das passiert mir auch immer wieder.
Deaktivieren Sie die Kombination insgesamt: So deaktivieren Sie die Tastenkombination Wahltaste-Leerzeichen für nicht unterbrechende Leerzeichen?
quelle
⌥
Modifikator kombinierte Leerzeichen einem regulären Leerzeichen zuzuordnen .