Очень часто на моем Mac, когда я использую символ трубы (|), за которым следует символ пробела, между ними вставляется невидимый символ.
Это особенно раздражает при использовании терминала, поскольку делает команды недействительными.
Если я набираю следующее в iterm2, я часто получаю следующее:
ls | cat
zsh: command not found: cat
Если я нажму клавишу со стрелкой вверх, чтобы получить предыдущую команду, а затем удалю и заново вставлю пробел между |
и cat
, команда будет работать.
Когда я копирую, вставляю рабочие и нерабочие команды в файл, например так:
non-working: ls | cat
working: ls | cat
и откройте его в Hex Fiend, оно показывает следующее:
non-working: ls | cat
working: ls | cat
Я также сталкивался с такой же проблемой в SublimeText2, используя квадратные скобки ( []) и пробел. Так что я не верю, что проблема с iTerm2.
macos
keyboard
keyboard-shortcuts
special-characters
щегольской
источник
источник
Ответы:
Что происходит, так это то, что вы продолжаете нажимать клавишу ⌥пробела, которая вставляет неразрывный пробел , известный в HTML через
ссылку. Этот неразрывный пробел полезен при обработке текста, когда вы хотите, чтобы определенные слова слипались, например, «OS» и «X» в «OS X».Очевидно, что это символ Unicode (
00A0
), и поэтому большинство утилит командной строки завершатся с ошибкой, например, просмотр bash_cat
(где_
неразрывный пробел), и Hex Fiend просто использует для этого плохое представление. Некоторые редакторы, с другой стороны, просто молча удаляют его (например, этот редактор прямо здесь), в то время как другие даже имеют специальное представление для него (например, TextMate, показывающий точку вместо пробела).Есть два решения:
Уделять больше внимания отпусканию ⌥клавиши при нажатии клавиши пробела. Кстати: это происходит со мной все время тоже.
Отключить комбинацию в целом: Как отключить комбинацию клавиш Option-Space для неразрывных пробелов?
источник
⌥
модификатором в обычный символ пробела.