Вопрос или проблема
Чтобы общаться с устройством последовательного типа через Telnet, мне нужно ввести нулевой символ (ASCII 0) и все другие непечатаемые ASCII символы.
В Windows вы удерживаете Alt и вводите код ASCII.
Как мне это сделать на Mac OS X?
Ctrl + Space отправляет ASCII NUL.
В общем случае, Системные настройки → Клавиатура → Источники ввода, прокрутите вниз по списку и выберите Unicode Hex Input.
Затем вы можете использовать Cmd + Shift + Space (и, если отключить использование Spotlight, Cmd + Space), чтобы переключаться между режимами ввода или назначить ему сочетание клавиш в Системные настройки → Клавиатура → Сочетания клавиш.
После включения Unicode Hex Input вы удерживаете Option и вводите четырехцифровой шестнадцатеричный код; при отпускании Option он должен быть введен. Вы можете оставаться в этом режиме, пока не понадобятся символы, выходящие за пределы U+007F
(или, конечно, ввести их все с помощью шестнадцатеричного ввода вместо, скажем, Option + e, e, чтобы ввести é
).
Во многих приложениях CLI/TUI вы можете нажать Ctrl + V, чтобы сообщить приложению принять нажатие следующей клавиши как необработанный код символа, вместо вызова его обычной функции.
Ответ или решение
Для ввода невидимых ASCII-символов в терминале macOS существует несколько методов, которые могут быть полезны как для опытных пользователей, так и для новичков. Ниже мы рассмотрим наиболее эффективные способы достижения этой цели.
Использование сочетаний клавиш
-
Ввод символа NULL (ASCII 0):
Для отправки символа NULL в терминале macOS можно использовать сочетание клавиш Ctrl + Space. Это позволит вам передать этот специфический невидимый символ непосредственно по порту. -
Использование сочетания Ctrl + V:
В большинстве приложений командной строки (CLI) и текстовых интерфейсов (TUI) можно использовать Ctrl + V для того, чтобы обозначить, что следующая нажатая клавиша должна обрабатываться как исходный код символа, а не как команда. Это может не сработать для всех невидимых символов, однако для некоторых это будет эффективным способом их ввода.
Включение и использование Unicode Hex Input
Если вам необходимо вводить и другие невидимые символы, вы можете активировать режим ввода Unicode Hex:
-
Активация режима ввода Unicode Hex:
- Перейдите в Системные настройки (System Preferences) → Клавиатура (Keyboard) → Ввод источников (Input Sources).
- Пролистайте список и добавьте Unicode Hex Input.
-
Переключение между раскладками:
- Используйте сочетание Cmd + Shift + Space для переключения между режимами ввода.
- Обратите внимание, что для беспроблемного переключения вы можете назначить отдельные сочетания клавиш в разделе Клавиатурные сокращения (Keyboard Shortcuts) в Системных настройках.
-
Ввод символов:
- После активации режима Unicode Hex Input удерживайте клавишу Option и вводите четырёхзначный шестнадцатеричный код символа. Например, для символа ASCII 0 (NULL) введите
0000
, затем отпустите Option — и символ будет введён.
- После активации режима Unicode Hex Input удерживайте клавишу Option и вводите четырёхзначный шестнадцатеричный код символа. Например, для символа ASCII 0 (NULL) введите
Важно помнить
- При использовании метода с вводом шестнадцатеричных кодов важно находиться в режиме Unicode. Это обеспечит правильное преобразование введённых значений в соответствующие символы.
- Некоторые приложения могут иметь ограничения на ввод невидимых символов, поэтому в таких случаях стоит использовать описанные выше методы в различных терминальных или текстовых интерфейсах.
В заключение, с помощью описанных методов вы можете эффективно вводить невидимые ASCII-символы, такие как NULL, в терминале macOS. Это может значительно облегчить работу с различными устройствами и протоколами, где требуются специфические символы для взаимодействия.