Mungkin kebingungan Anda muncul karena tidak menggunakan terminal yang sebenarnya. Kembali ketika komputer serius seukuran beberapa kulkas tegak, terminal berkomunikasi dengan komputer pusat melalui kabel serial menggunakan karakter dan karakter saja. Karakter adalah bagian dari beberapa rangkaian karakter standar, misalnya ASCII atau EBCDIC, tetapi biasanya ASCII. ASCII memiliki 33 karakter kontrol dan operator terminal mengirimkannya dengan menekan tombol khusus (seperti DEL) atau dengan menahan tombol CTRL dan menekan tombol lain. Komputer pusat hanya melihat karakter kontrol yang dihasilkan; tidak tahu tombol apa yang ditekan untuk menghasilkan karakter.
Program emulasi terminal seperti xterm meniru perilaku itu. Emulator terminal menyediakan cara untuk mengirim semua 33 karakter kontrol ASCII dan Emacs akan menerima karakter tersebut jika dikirim. Tetapi Emacs seperti komputer pusat dalam deskripsi di atas --- ia tidak memiliki cara untuk mengetahui tombol apa yang sebenarnya ditekan ketika Anda menjalankannya di bawah terminal emulator. Jadi, jika Anda menekan CTRL dan titik koma, kecuali program emulasi terminal telah memetakan penekanan tombol itu ke beberapa karakter ASCII, Emacs tidak akan tahu bahwa ada sesuatu yang telah diketik.
Emulator terminal biasanya menggunakan pemetaan berikut untuk menghasilkan karakter kontrol † :
penekanan tombol ASCII
--------------------
ESCAPE 27
HAPUS 127
BACKSPACE 8
CTRL + SPACE 0
CTRL + @ 0
CTRL + A 1
CTRL + B 2
CTRL + C 3
dll ...
CTRL + X 24
CTRL + Y 25
CTRL + Z 26
CTRL + [27
CTRL + \ 28
CTRL +] 29
CTRL + ^ 30
CTRL + _ 31
Perhatikan bahwa CTRL +; tidak muncul dalam daftar itu. Terminal akan biasanya hanya mengirim karakter dicetak ditugaskan untuk kunci jika CTRL + kunci tidak dipetakan ke karakter kontrol. Jadi apa yang dikatakan emulator terminal Anda dengan mengirim; sendirian adalah bahwa ia tidak tahu apa yang harus dilakukan ketika Anda menekan CTRL + ;.
Semua ini hanya berlaku jika Anda menggunakan terminal atau program emulasi terminal. Jika Anda menjalankan Emacs sebagai aplikasi asli di bawah beberapa sistem jendela, maka Emacs memiliki akses penuh ke acara keystroke dan bukan hanya karakter. Jadi Emacs dapat melihat bahwa Anda menekan CTRL dan titik koma bersamaan dan memungkinkan Anda untuk menetapkan tindakan pada pasangan keystroke itu.
† Terminal sering memiliki tombol fungsi dan tombol panah yang juga menghasilkan urutan karakter yang menyertakan karakter kontrol. Urutan ini biasanya dimulai dengan kode ASCII 27 (ESCAPE).
;
ke Emacs, jadi tidak ada yang menangkapnya , yang terjadi adalah Ctrl +; dan telanjang; kirim informasi yang sama. Yang mana: capture (mis. Emacs tidak menerima apa-apa), atau kehilangan informasi (mis. Emacs menerima;
)?