Có lẽ sự nhầm lẫn của bạn phát sinh từ việc không sử dụng một thiết bị đầu cuối thực tế. Quay lại khi các máy tính nghiêm trọng có kích thước của một số tủ lạnh thẳng đứng, một thiết bị đầu cuối giao tiếp với một máy tính trung tâm qua cáp nối tiếp chỉ sử dụng các ký tự và ký tự. Các ký tự là một phần của một số bộ ký tự được tiêu chuẩn hóa, ví dụ ASCII hoặc EBCDIC, nhưng điển hình là ASCII. ASCII có 33 ký tự điều khiển và toán tử đầu cuối đã gửi chúng bằng cách nhấn một phím đặc biệt (chẳng hạn như DEL) hoặc bằng cách giữ phím CTRL và nhấn một phím khác. Máy tính trung tâm chỉ nhìn thấy ký tự điều khiển kết quả; nó không biết phím nào được nhấn để tạo ra nhân vật.
Một chương trình mô phỏng đầu cuối như xterm bắt chước hành vi đó. Trình giả lập thiết bị đầu cuối cung cấp một cách để gửi tất cả 33 ký tự điều khiển ASCII và Emacs sẽ nhận các ký tự đó nếu chúng được gửi. Nhưng Emacs giống như máy tính trung tâm trong phần mô tả ở trên --- nó không có cách nào biết được phím nào thực sự được nhấn khi bạn chạy nó dưới trình giả lập thiết bị đầu cuối. Vì vậy, nếu bạn nhấn CTRL và dấu chấm phẩy, trừ khi chương trình mô phỏng đầu cuối đã ánh xạ các phím nhấn đó sang một số ký tự ASCII, Emacs sẽ không biết rằng bất cứ thứ gì đã được gõ.
Trình giả lập thiết bị đầu cuối thường sử dụng các ánh xạ sau để tạo các ký tự điều khiển † :
nhấn phím ASCII
--------------------
ESCAPE 27
XÓA 127
QUAY LẠI 8
CTRL + KHÔNG GIAN 0
CTRL + @ 0
CTRL + A 1
CTRL + B 2
CTRL + C 3
Vân vân...
CTRL + X 24
CTRL + Y 25
CTRL + Z 26
CTRL + [27
CTRL + \ 28
CTRL +] 29
CTRL + ^ 30
CTRL + _ 31
Lưu ý rằng CTRL +; không xuất hiện trong danh sách đó. Thiết bị đầu cuối sẽ thường chỉ gửi các ký tự in được giao chìa khóa nếu CTRL + chìa khóa không được ánh xạ tới một nhân vật tầm kiểm soát. Vì vậy, những gì trình giả lập thiết bị đầu cuối của bạn đang nói với bạn bằng cách gửi; một mình là nó không biết phải làm gì khi bạn nhấn CTRL +;.
Tất cả điều này chỉ áp dụng nếu bạn đang sử dụng thiết bị đầu cuối hoặc chương trình mô phỏng thiết bị đầu cuối. Nếu bạn đang chạy Emacs như một ứng dụng gốc trong một số hệ thống cửa sổ, thì Emacs có toàn quyền truy cập vào các sự kiện tổ hợp phím và không chỉ các ký tự. Vì vậy, Emacs có thể thấy rằng bạn đã nhấn CTRL và dấu chấm phẩy cùng nhau và cho phép bạn gán một hành động cho cặp tổ hợp phím đó.
† Terminals thường có các phím chức năng và phím mũi tên đó cũng tạo ra các chuỗi ký tự bao gồm ký tự điều khiển. Các chuỗi này thường bắt đầu bằng mã ASCII 27 (ESCAPE).
;
tới Emacs, vì vậy không có gì bắt được nó, những gì đang xảy ra là Ctrl +; và trần; gửi cùng thông tin Đó là cái nào: chụp (tức là Emacs không nhận được gì), hoặc mất thông tin (tức là Emacs nhận được;
)?