Скрытые символы, вставленные после трубы (|), а затем пробел
Очень часто на моем Mac, когда я использую символ pipe (|), за которым следует символ пробела, между ними будет вставлен невидимый символ.
Это особенно раздражает при использовании терминала, так как делает команды недействительными.
Если я наберу следующее в iterm2, я часто получаю следующее:
- Crontab - / bin / sh: wget: команда не найдена
- Можно ли управлять светодиодом CAPS LOCK на OS X?
- Процесс bash использует 90% процессор, возвращается на перезагрузку компьютера
- Htop не возвращает процессор или память !?
- Самый простой способ настроить HTTP-прокси-запрос-отправитель в MAC-адресе?
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.
- Почему есть два пользователя, отображающих результаты команды uptime?
- Как мне установить переменную PATH на моем Mac, чтобы найдены инструменты, установленные в Hombrew?
- Есть ли способ в Mac OS X остановить приложения от кражи фокуса, особенно между пробелами?
- Каковы технические препятствия, которые не позволяют устанавливать ОС на ПК?
- Как я могу диагностировать медленный mac?
- OS X: Как избежать повторного подключения к сетевому ресурсу после отключения NAS?
- Как изменить размер и стиль изображений в Outlook для Mac 2011?
- Синхронизировать закладки iCloud с Firefox в Windows 7
Случается, что вы продолжаете нажимать ⌥ с помощью пробела, который вставляет неразрывное пространство , известное в HTML через
Справка. Это неразрывное пространство полезно при обработке текста, где вы хотите, чтобы определенные слова склеивались, например «OS» и «X» в «OS X».
Очевидно, что это символ юникода ( 00A0
), и поэтому большинство утилит командной строки не _cat
, например bash, видя _cat
(где _
– неразрывное пространство), а Hex Fiend просто использует для этого плохое представление. Некоторые редакторы, с другой стороны, просто молча удаляют его (например, этот редактор прямо здесь), в то время как другие даже имеют специальное представление для него (например, TextMate показывает точку вместо пустого пространства).
Существует два решения:
-
Обратите внимание, чтобы отпустить клавишу ⌥ при нажатии пробела. Кстати: со мной все время тоже.
-
Отключить комбинацию в целом: как отключить комбинацию клавиш Option-Space для неразрывных пробелов?