Không thể liên kết Meta + Shift + Character

Oct 14 2020

Tôi không thể liên kết Meta + Shift + bất kỳ ký tự nào.

Tôi không gặp phải những vấn đề này với các tổ hợp phím khác (chẳng hạn như Control + Shift + Key).

Dưới đây là trường hợp cụ thể mà tôi không thể đi làm:

(global-set-key (kbd "M-S-Z") 'zap-up-to-char-backward)
(defun zap-up-to-char-backward (char)
  (interactive "cZap up to char (backward): ")
  (zap-up-to-char -1 char))

Trả lời

4 Drew Oct 15 2020 at 00:31

M-S-Zcó nghĩa là Meta + Shift + Z. Nhưng Z(chữ hoa) chính là những gì Emacs sử dụng cho Shift>+ z.

Có khả năng không có phím nào trên bàn phím của bạn tương ứng với S-Z. Đó là lý do tại sao bạn nói rằng nó không hoạt động.

Nếu bạn sử dụng, C-h bbạn sẽ thấy ràng buộc khóa của mình được liệt kê OK. Và nếu bạn sử dụng, C-h w zap-up-to-char-backwardbạn sẽ thấy rằng nó nói rằng nó bị ràng buộc M-S-Z.

Vấn đề là bạn không có cách nào để gõ một chuỗi phím như vậy bằng bàn phím của mình.

C-là đặc biệt, trong đó C-Zđược hiểu là ký tự Control C-z, nghĩa là, ASCII Control Z.


Không rõ bạn thực sự muốn làm gì. Bạn có muốn ràng buộc chìa khóa bàn phím kết hợp Meta+ Shift>+ z? Nếu vậy, hãy sử dụng (kbd "M-Z"), không (kbd "M-S-z")hoặc (kbd "M-S-Z").