Bạn sẽ thấy thoải mái hơn trong X11 Emacs, có thể nhận đầu vào bàn phím và hiển thị văn bản mà không cần thông qua mã hóa và giải mã cho thiết bị đầu cuối . Lý do chính để sử dụng trình chỉnh sửa chế độ văn bản là để chạy nó trong màn hình hoặc tmux trên máy từ xa, nhưng nhờ Tramp, việc chỉnh sửa tệp từ xa trong Emacs cục bộ của bạn thường dễ dàng hơn. Điều đó đang được nói, bạn có thể làm những gì bạn muốn miễn là trình giả lập thiết bị đầu cuối của bạn hợp tác, đó là trường hợp với Xterm.
Khi bạn nhấn một phím hoặc tổ hợp phím trong một thiết bị đầu cuối, nó được truyền đến ứng dụng đang chạy trong thiết bị đầu cuối dưới dạng một chuỗi gồm một hoặc nhiều ký tự. Ví dụ, khi bạn nhấn a, ứng dụng sẽ nhận được a
. Khi bạn nhấn Enter, ứng dụng sẽ nhận được ký tự CR
(còn gọi là ^M
(phát âm là control control-emmiêu), hay còn gọi là ký tự số 13, aka \r
hay \015
). Các tổ hợp phím liên quan Altthường được truyền dưới dạng ký tự ESC
(a.ka. ^[
aka \e
hoặc \033
) theo sau là chuỗi cho tổ hợp phím hoặc khóa không có Alt. Các phím chức năng và các tổ hợp phím khác được truyền dưới dạng các chuỗi thoát bắt đầu bằng \e[
hoặc \eO
.
Các chuỗi thoát không được chuẩn hóa hoàn toàn và các thiết bị đầu cuối thường bỏ qua các thuộc tính nhất định cho các khóa nhất định. Ví dụ, siêu sửa đổi và siêu sửa đổi thường bị bỏ qua. Bạn có thể thấy những gì thiết bị đầu cuối của bạn gửi cho một tổ hợp phím bằng cách nhấn Ctrl+ Vtheo sau là tổ hợp phím đó trong dấu nhắc shell hoặc C-q
hoặc C-h c
theo sau là tổ hợp phím trong Emacs.
Xterm phép bạn cấu hình các trình tự thoát cho mỗi phím thông qua các nguồn tài nguyên X . Hầu hết các thiết lập đọc tài nguyên từ ~/.Xresources
khi X bắt đầu và bạn có thể tải tệp theo cách thủ công 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~")
Một quy ước chung sử dụng các chuỗi thoát của biểu mẫu ESC [ number1 ; number2 ~
cho các phím chức năng với các sửa đổi. number1
chỉ ra phím chức năng ( 15
để 24
cho F5tới F12- vì những lý do lịch sử, F1 qua F4có trình tự thoát khác nhau) và number2
chỉ ra các sửa đổi ( 2
cho Shift, 5
cho Ctrl, 3
cho Meta, 8
cho Ctrl+ Meta, và thêm 1 + Shift- không có, nó không phải là rất phù hợp).
Bạn sẽ phải chỉ định các sửa đổi Hyper và Super thông qua số lượng của chúng, như Mod1
thông qua Mod5
. Chạy xmodmap -pm
để xem ánh xạ của keyyms đến modifier. Ví dụ: nếu Super_L
bị ràng buộc với Mod5, thì dòng sau (sử dụng trường hợp chính xác này) xác định ràng buộc cho Super+ Space:
~Ctrl ~Meta Mod5 <Key> space: string("\033[32;16~") \n\
Emacs chuyển các chuỗi thoát thành biểu diễn khóa bên trong của nó thông qua input-decode-map
hoặclocal-function-key-map
(hoặc function-key-map
trước Emacs 23).
(define-key local-function-key-map "\033[32;16~" [(super ?\ )])
Bài đăng này được làm bằng 80% vật liệu tái chế từ Có thiết bị đầu cuối linux nào có thể xử lý tất cả các kết hợp chính không?