Управляющие символы могут быть представлены с помощью еще одного синтаксиса чтения. Он состоит из вопросительного знака, за которым следуют обратный слеш, карет и соответствующий не-управляющий символ, в верхнем или нижнем регистре. Например, как ?\^I так и ?\^i являются допустимым синтаксисом чтения для символа C-i, символа, значение которого равно 9.
Вместо ^ вы можете использовать C-; таким образом, ?\C-i эквивалентен ?\^I и ?\^i:
?\^I ⇒ 9 ?\C-I ⇒ 9
В строках и буферах разрешены только те управляющие символы, которые существуют в ASCII; но для целей ввода с клавиатуры вы можете превратить любой символ в управляющий с помощью C-. Коды символов этих не-ASCII управляющих символов включают бит 2**26, а также код соответствующего не-управляющего символа. Не все текстовые терминалы могут генерировать не-ASCII управляющие символы, но их легко сгенерировать с помощью X и других оконных систем.
По историческим причинам Emacs рассматривает символ DEL как управляющий эквивалент ?:
?\^? ⇒ 127 ?\C-? ⇒ 127
В результате в настоящее время невозможно представить символ Control-?, который является значимым входным символом в X, используя \C-. Нелегко это изменить, поскольку различные файлы Lisp ссылаются на DEL таким образом.
Для представления управляющих символов, которые будут находиться в файлах или строках, мы рекомендуем синтаксис ^; для управляющих символов при вводе с клавиатуры мы предпочитаем синтаксис C-. Какой из них вы используете, не влияет на смысл программы, но может направить понимание людей, которые ее читают.