Anda akan lebih nyaman dengan X11 Emacs, yang dapat menerima input keyboard dan menampilkan teks tanpa melalui pengkodean dan decoding untuk terminal . Alasan utama untuk menggunakan editor mode teks adalah untuk menjalankannya di dalam layar atau tmux pada mesin jarak jauh, tetapi berkat Tramp, biasanya lebih mudah untuk mengedit file jarak jauh di Emacs lokal Anda. Yang sedang berkata, Anda dapat melakukan apa yang Anda inginkan selama emulator terminal Anda bekerja sama, seperti halnya dengan Xterm.
Ketika Anda menekan tombol atau kombinasi tombol di terminal, itu dikirim ke aplikasi yang berjalan di terminal sebagai urutan satu atau lebih karakter. Misalnya, ketika Anda menekan a, aplikasi menerima a
. Ketika Anda menekan Enter, aplikasi menerima karakter CR
(alias ^M
(diucapkan "control-emm"), alias nomor 13, alias \r
atau \015
). Kombinasi kunci yang terlibat Altbiasanya ditransmisikan sebagai karakter ESC
( ^[
alias alias \e
atau \033
) diikuti oleh urutan untuk kombinasi tombol atau kunci tanpa Alt. Tombol fungsi dan kombinasi tombol lainnya ditransmisikan sebagai urutan keluar yang dimulai dengan \e[
atau \eO
.
Urutan lolos tidak sepenuhnya standar, dan terminal biasanya mengabaikan atribut tertentu untuk kunci tertentu. Sebagai contoh, hyper dan super modifier biasanya diabaikan. Anda dapat melihat apa yang dikirim terminal Anda untuk kombinasi tombol dengan menekan Ctrl+ Vdiikuti oleh kombinasi tombol tersebut di prompt shell, atau C-q
atau C-h c
diikuti oleh kombinasi tombol di Emacs.
Xterm memungkinkan Anda mengkonfigurasi urutan escape untuk setiap tombol melalui sumber X . Sebagian besar pengaturan membaca sumber daya dari ~/.Xresources
saat X dimulai, dan Anda dapat memuat file secara manual xrdb -merge ~/.Xresources
.
XTerm.VT100.translations: #override \n\
Ctrl ~Shift ~Meta <Key> Return: string("\033[73;5~") \n\
Ctrl Shift ~Meta <Key> percent: string("\033[37;6~")
Sebuah konvensi umum menggunakan urutan melarikan diri dari bentuk ESC [ number1 ; number2 ~
untuk tombol fungsi dengan pengubah. number1
menunjukkan tombol fungsi ( 15
untuk 24
untuk F5ke F12- untuk alasan historis, F1 melalui F4memiliki escape sequence yang berbeda) dan number2
menunjukkan modifikator ( 2
untuk Shift, 5
untuk Ctrl, 3
untuk Meta, 8
untuk Ctrl+ Meta, dan tambahkan 1 untuk + Shift- tidak, itu sangat tidak konsisten).
Anda harus menentukan pengubah Hyper dan Super melalui nomor mereka, sebagai Mod1
melalui Mod5
. Jalankan xmodmap -pm
untuk melihat pemetaan keyyms ke pengubah. Misalnya, jika Super_L
terikat ke Mod5, maka baris berikut (gunakan case persis ini) mendefinisikan pengikatan untuk Super+ Space:
~Ctrl ~Meta Mod5 <Key> space: string("\033[32;16~") \n\
Emacs menerjemahkan urutan pelarian ke dalam representasi kunci internal melalui input-decode-map
ataulocal-function-key-map
(atau function-key-map
sebelum Emacs 23).
(define-key local-function-key-map "\033[32;16~" [(super ?\ )])
Posting ini terbuat dari bahan daur ulang 80% dari Apakah ada terminal linux yang dapat menangani semua kombinasi tombol?