2012-02-27 22 views
12

Tôi có mã sau đây trong .emacs: (global-set-key (kbd "M-x g") 'gnus) để khởi động Gnus bằng khóa phím M-x g. Tôi nhận được: error: Key sequence M-x g starts with non-prefix key M-x. Làm thế nào tôi có thể xác định keybindings bắt đầu với M-x? Đây có phải là một điều xấu để làm và nên tránh? Tôi thấy nó trực quan hơn vì "phiên bản dài" là M-x gnus. Xác định nó như C-c g ví dụ như là không có vấn đề nhưng sau đó bạn bắt đầu Gnus với C-c g và, ví dụ, R qua M-x R mà không phải là rất trực quan (trái ngược với bắt đầu cả hai qua M-x + 1 letterlỗi emacs: Trình tự khóa M-x g bắt đầu bằng khóa phi tiền tố M-x

Trả lời

18

Mấu chốt Mx đã bị ràng buộc để lệnh execute-extended-command, sau đó yêu cầu bạn cung cấp tên của một lệnh để thực hiện (trong bạn trường hợp: gnus).

Kể từ R là một lệnh chỉ có một ký tự dài, có vẻ như Mx R là chìa khóa trình tự, nhưng không phải là: Mx theo sau bằng cách nhập R trong minibuffer và bạn phải nhấn RET để xác thực thông tin nhập của bạn.

Nói tóm lại:

  • bạn không thể đặt chuỗi chìa khóa bắt đầu với Mx từ khóa này đã được ràng buộc với một lệnh và vì thế không phải là một tiền tố (không giống như Cc, mà không làm gì nhưng chờ để bạn nhập một khóa khác, nhưng nên dành riêng cho các ràng buộc cụ thể cho các chế độ hiện tại).
  • cách tiêu chuẩn để làm những việc sẽ được tiếp tục bắt đầu gnus sử dụng Mx gnus hay kết nối lại nó với một chìa khóa hoàn toàn khác nếu bạn cần phải rất nhanh (bạn có thể ví dụ sử dụng một trong những F1 - F12 phím)
  • nếu bạn thực sự muốn có một bức thư Mx + ràng buộc, bạn có thể xác định một bí danh một lá thư gửi tới lệnh gnus, như thế này:
(defalias 'g 'gnus) 
+0

giải thích rất chi tiết, cảm ơn rất nhiều, Francesco. –

+0

Tùy chọn thứ tư sẽ là xóa Mx và đặt nó làm khóa tiền tố: http://stackoverflow.com/questions/1024374/how-can-i-make-cp-an-emacs-prefix-key-for-develperlysense (Tuy nhiên, Mx là một khóa emacs cốt lõi mà trong trường hợp này nó có thể là một ý tưởng tồi.) – idbrii

Các vấn đề liên quan