Công ước về việc sử dụng Cx hoặc Cc làm khóa tiền tố


16

Những quy ước cho việc sử dụng là gì C-x, C-choặc M-như phím tiền tố?

Ví dụ: is C-x, v.v., để lưu hoặc truy cập bộ đệm? Là C-c, vv, để chỉnh sửa văn bản?

Lý lịch

Có lẽ đây là một câu hỏi ngớ ngẩn. Tôi sử dụng bàn phím tiếng Tây Ban Nha và đôi khi xác định lại các phím bấm phổ biến cho bàn phím tiếng Anh (QWERTY). Ví dụ: lệnh shell được ràng buộc trong vanilla Emacs tới M-!. Tôi ràng buộc nó vào M-¡thay vào đó, vì M-!M-shift-1, mà tôi không thể nhấn một cách dễ dàng. Tôi tự hỏi nếu có những quy ước mà tôi đang ghi đè khi tôi thực hiện các loại thay đổi này


giống như M-xlà "thực thi lệnh mở rộng, Đây là cổng vào rất nhiều thứ tinh vi bạn có thể thực hiện tương tác trong Emacs; nó cho phép bạn chạy bất kỳ chức năng Elisp nào theo tên." Có C-cC-xkhông có một mô tả như vậy?
Pinocchio

Câu trả lời:


21

Nếu bạn đang nói về các khóa ràng buộc cho việc sử dụng của riêng bạn, thì đây là quy tắc: Bạn có thể liên kết bất kỳ khóa nào bạn thích.

Nếu bạn muốn chắc chắn không ràng buộc một khóa có thể đã bị ràng buộc thì hãy sử dụng C-ctheo sau là một chữ cái. Tất cả các khóa như vậy được dành riêng cho người dùng (xem tiếp theo).


Nếu bạn đang nói về các khóa liên kết trong mã (ví dụ: thư viện) mà bạn viết, để người khác sử dụng, thì các quy tắc (quy ước) được mô tả ở đây: Quy ước ràng buộc khóa của hướng dẫn Elisp.

Các quy tắc chính ở đó, liên quan đến những gì bạn yêu cầu, là những quy tắc liên quan đến C-c:

  • Đừng định nghĩa C-c LETTERlà một khóa trong các chương trình Lisp. Chuỗi bao gồm C-cvà một chữ cái (viết hoa hoặc viết thường) được dành riêng cho người dùng; chúng là các chuỗi duy nhất dành riêng cho người dùng, vì vậy đừng chặn chúng.

  • Chuỗi bao gồm C-ctheo sau bởi một ký tự điều khiển hoặc một chữ số được dành riêng cho các chế độ chính.

  • Trình tự gồm C-ctiếp theo {, }, <, >, : hoặc ;cũng dành cho chế độ chính.

  • Các chuỗi bao gồm C-ctheo sau bởi bất kỳ dấu chấm câu hoặc ký tự ASCII nào khác được phân bổ cho các chế độ nhỏ. Sử dụng chúng trong chế độ chính không hoàn toàn bị cấm, nhưng nếu bạn làm điều đó, ràng buộc chế độ chính có thể bị che khuất theo thời gian bởi các chế độ nhỏ.

Bạn sẽ lưu ý rằng không có quy ước liên quan C-x. Tuy nhiên, một quy ước không có căn cứ hoặc chỉ là lời khuyên / thực hành tốt: Nếu bạn thay thế một số ràng buộc Emacs tiêu chuẩn hiện có (nghĩa là bạn nhận được từ Emacs như được phân phối, mà không tải bất kỳ thư viện của bên thứ 3 nào) thì điều đó có thể gây nhầm lẫn hoặc làm phiền một số người dùng mã của bạn


Bạn có thể truy cập tài liệu đó trong Emacs, theo cách này:

  1. C-h i, để mở Thông tin, trình duyệt doc.
  2. m el TAB RET, đối với m enu el isp ( TABđể hoàn thành) hoặc chỉ cần nhấp vào Elispliên kết với chuột của bạn.
  3. key bi TAB, sau đó n TAB RETđể hoàn thành Key Binding Conventions.

Hoặc bạn có thể sử dụng itrong hướng dẫn Elisp, để hoàn thành các mục chỉ mục:

  1. C-h i m el TAB RET.
  2. i key bi TAB, hoàn thành key bindingvà cho bạn thấy hai khả năng: key bindingkey binding, conventions for. Nhập , TABđể hoàn thành đến thứ hai, sau đó RETchấp nhận nó.

Tốt hơn là tuân theo quy ước để ràng buộc C-cvà gửi thư cho các lệnh của người dùng. Bằng cách đó, người ta có thể (gần như) chắc chắn rằng người ta không ghi đè một số ràng buộc khác từ một chế độ chính đã được cài đặt hoặc sẽ được cài đặt một ngày nào đó trong tương lai.
Tobias

1
@Tobias: Không chắc bạn đang nói gì. Tốt hơn cái gì? Tất cả các quy ước ràng buộc khóa phải được tuân theo, bao gồm không ràng buộc C-c+ LETTER trong thư viện của bên thứ 3.
Drew

Bạn đã nêu chính xác trong những câu đầu tiên trong câu trả lời của bạn rằng không có quy tắc nghiêm ngặt nào cho việc sử dụng riêng tư. Tuy nhiên, nên tuân theo các quy ước về các phím bấm của người dùng vì những lý do tôi đưa ra trong nhận xét đầu tiên của mình. Có lẽ, bạn có thể thêm một ghi chú về điều đó bên dưới mọi thứ của bạn đi theo quy tắc trong phần đầu tiên. Đó là tất cả những gì tôi muốn nói, Drew. Trân trọng,
Tobias

3
@Tobias: Tôi đã thêm những gì tôi nghĩ bạn đang nói; cảm ơn. Nhưng không có quy ước nào cho người dùng tuân theo các ràng buộc chính. Các "quy ước cho các phím bấm của người dùng" mà bạn nói đến không phải là các quy ước cho người dùng. Chúng là những quy ước để mã hóa Lisp sẽ được sử dụng bởi những người khác. (Tôi biết rằng bạn biết điều này. Chỉ muốn được rõ ràng, cho bất cứ ai khác đọc điều này.)
Drew

Nhân vật điều khiển là gì?
Didier A.

2

Câu trả lời của @ Drew mang nhiều sắc thái và chi tiết hơn.

Đây là một câu hỏi hoàn toàn hợp lệ! Có một quy ước rằng nó C-xđược dành riêng bởi emacs trong khi C-ctiền tố được sử dụng cho các tổ hợp phím do người dùng xác định.

Hãy xem điều này , đặc biệt là phần "Khóa dành riêng". Tôi khá chắc chắn rằng thông tin này cũng được nêu trong hướng dẫn sử dụng emacs, nhưng tôi dường như không thể tìm thấy nó ngay bây giờ. Các công ước được mô tả trong này phần của emacs lisp bằng tay.


1
C-ctheo sau là một chữ cái (chữ thường hoặc chữ hoa) mà không cần sửa đổi thêm được dành riêng cho người dùng. Nhiều chuỗi khóa khác bắt đầu bằng C-cđược dành riêng cho các chế độ chính - đặc biệt là các chuỗi trong đó hành trình phím thứ hai cũng được sửa đổi bởi phím điều khiển.
Tobias

Bạn đúng, tất nhiên. @Drew trả lời câu hỏi này tốt hơn nhiều.
Panagiotis Koutsourakis

giống như M-xlà "thực thi lệnh mở rộng, Đây là cổng vào rất nhiều thứ tinh vi bạn có thể thực hiện tương tác trong Emacs; nó cho phép bạn chạy bất kỳ chức năng Elisp nào theo tên." Có C-cC-xkhông có một mô tả như vậy?
Pinocchio
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.