Как печатать непечатные символы ASCII в Mac OS X Terminal? [Дубликат]

16

Для связи с устройством последовательного типа через сокет telnet мне нужно ввести нулевой символ (ASCII 0) и все другие непечатаемые символы ASCII.

В Windows вы держите ALT и вводите код ASCII.

Как мне сделать это на Mac OS X?

davidcann
источник

Ответы:

18

CtrlSpace отправляет ASCII NUL.

В общем случае, Системные настройки> Клавиатура> Источники ввода , прокрутите список вниз и выберите Ввод в шестнадцатеричном формате Unicode .

Затем можно использовать CmdShiftSpace(и, если вы отключите его использование Spotlight CmdSpace), чтобы переключаться между режимами ввода или назначать ему собственное сочетание клавиш (и, вероятно, другое для переключения назад) в Системных настройках> Клавиатура> Сочетания клавиш .

Как только ввод шестнадцатеричного Unicode включен, вы удерживаете Optionи вводите четырехзначный шестнадцатеричный код; при выпуске Optionэто должно быть напечатано. Вы можете оставаться в этом режиме до тех пор, пока вам не понадобятся какие-либо символы за пределами U+007F(или, конечно, введите их все с помощью шестнадцатеричного ввода вместо, скажем, Optione eввода é)

geekosaur
источник
1
Большое спасибо! Примечание для других: в моей системе сочетанием клавиш по умолчанию был Option Cmd Space.
Давидканн
Для Mac OS X это Shift + Alt + Space
В моем случае мне пришлось ввести DLEсимвол (Unicode 0x10) в командной строке. DLEэто то же самое, Ctrl-Pчто и в любой программе, которая использует readlineвидит команду «прокрутка до предыдущей записи», так что это то же самое, что и нажатие . Для того , чтобы напечатать DLEсимвол на моем терминале, я должен был сделать Ctrl-Vто , Opt-0-0-1-0и я получил символ , который выглядит на экране , как ^P.
Кристофер Шульц
2

Во многих приложениях CLI / TUI вы можете нажать CtrlV, чтобы указать приложению принять следующее нажатие клавиши в виде необработанных кодов символов вместо вызова его обычной функции.

Игнасио Васкес-Абрамс
источник