Làm cách nào để tạo xterm để gửi phím Alt tới emacs dưới dạng Meta?


9

Tôi thấy rằng câu hỏi này đã được hỏi nhiều lần . Các giải pháp đưa ra ở đó dường như không áp dụng cho thiết lập của tôi. Đây là câu chuyện của tôi:

Tôi sử dụng Ubuntu 12.0.04 LTS, với xmonad (không phải trên gnome) và sử dụng xterm cho công việc của tôi. Tôi thích sử dụng xterm hơn là một cửa sổ khác hoặc cửa sổ riêng của emacs. Khi sử dụng emacs -nw, tôi thấy rằng Alt không được nhận dạng. Tôi đã xác minh bằng xev rằng Alt thực sự được tạo. Hơn nữa, nếu tôi đang sử dụng rxvt, tôi thấy rằng Alt đang được nhận ra bởi emacs -nw. Tôi đang sử dụng chế độ tà ác (với tư cách là một người dùng vim lâu năm và một newbee emacs), và tôi thực sự không muốn khóa thoát của mình bật lại như alt (đó là giải pháp được đưa ra trong một luồng khác). Tôi nên làm gì? (Nếu có ích, Alt-x trên cửa sổ xterm không có emacs đang chạy sẽ tạo ra "ø" hoặc nếu tôi chạy emacs -nw -Q).


Nếu tôi không nhầm thì Alt đang được đọc là M thay vào đó.
Braiam

Tôi không hiểu, ý bạn là M chứ không phải Meta phải không? tại sao bạn nói như vậy?
rahul

Phím Emacs Meta. Bạn có thể nhấn Mx không?
Braiam

Ồ, đó là vấn đề của tôi. Tôi đã mong đợi Alt-x tạo Mx (giống như trên chế độ đồ họa) nhưng nó không làm điều đó trên xterm đối với tôi. Thay vào đó, nó tạo ra (ø)
rahul

Câu trả lời:


13

Như đã thấy trong Arch Wiki , bạn cần tạo Xterm để gửi khóa thoát chính xác cho chương trình:

Nếu bạn sử dụng Altphím cho các phím tắt, bạn sẽ cần điều này trong tệp tài nguyên của mình:

XTerm*metaSendsEscape: true

Vì vậy, chỉ cần làm:

echo 'XTerm*metaSendsEscape: true' >> ~/.Xresources

Và khởi động lại phiên Xterm của bạn.


Cảm ơn, điều đó đã làm việc. Vậy, nếu Alt gửi thoát bây giờ, xterm xử lý Escape như thế nào? (Escape cũng hoạt động, tôi đang hỏi sự hiểu biết của tôi.)
rahul

@rahul Tôi không nói thoát "Esc", nhưng thoát phím bấm "^ M"
Braiam

4
thay vì khởi động lại phiên của bạn, bạn cũng có thể chạyxrdb -merge ~/.Xresources
Christian Fritz

2

Nếu việc cập nhật ~ / .Xresource không hiệu quả với bạn, hãy làm như tài liệu nói và cập nhật nó trong ~/.Xdefaults

http://frequal.com/linux/XTermMetaSendsEscape.html


Điều này làm việc cho tôi trong máy chủ X trần, giống như với startx /usr/bin/xterm, nơi ~/.Xresourcesbị bỏ qua.
Ruslan

1

Có một cách thay thế thú vị để quản lý .Xdefaults/ .Xresourcestệp của bạn bằng cách cung cấp chuỗi tài nguyên trực tiếp dưới dạng xtermtùy chọn dòng lệnh:

xterm -xrm 'xterm*VT100.metaSendsEscape: true'

Điều này rất tiện lợi, ví dụ, nếu bạn có một bí danh tùy chỉnh cho x-terminal-emulatordù sao đi nữa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.