Câu trả lời:
Để chỉ tìm các ràng buộc chính cho một lệnh, bạn có thể sử dụng tính năng "ở đâu" của trợ giúp emacs
C-h w command-name
Nếu nhiều ràng buộc được đặt cho lệnh thì tất cả chúng sẽ được liệt kê.
Đối với nghịch đảo, đã cho một chuỗi khóa, bạn có thể nhập
C-h k key-sequence
Để nhận lệnh sẽ chạy.
Bạn có thể nhận được thông tin chi tiết về một lệnh, cũng như bất kỳ chức năng không tương tác nào được xác định, bằng cách nhập
C-h f function-name
Điều này sẽ cung cấp cho bạn thông tin chi tiết về một chức năng, bao gồm mọi ràng buộc chính cho chức năng đó và
C-h v variable-name
sẽ cung cấp cho bạn thông tin về bất kỳ biến (bị ràng buộc) nào. Bản đồ khóa được giữ trong các biến, tuy nhiên các mã khóa được lưu trữ ở định dạng thô. Hãy thử C-h v isearch-mode-map
cho một ví dụ.
Để được trợ giúp thêm về cách nhận trợ giúp, bạn có thể nhập
C-h ?
C-h w <function name>
để biết chìa khóa ở đâu chứ không phải tài liệu đầy đủ. Ngược lại, bạn cũng có thể làm C-h c <key sequence>
để biết hàm nào được liên kết với một chuỗi khóa.
C-h
với một cái gì đó khác trong trình quản lý cửa sổ của họ: C-h w
tương đương với M-x where-is
. C-h k
tương đương với M-x describe-key
. C-h f
tương đương với M-x describe-function
. C-h v
tương đương với M-x describe-variable
. C-h ?
tương đương với M-x help-for-help
. Cũng lưu ý rằng f1
có thể được sử dụng thay thế C-h
.
C-h w
(hoặc F1-w
): where-is
RET tên lệnh nào đó RET
Đúng như những gì bạn đang yêu cầu - liệt kê các khóa bị ràng buộc mà không có thông tin bổ sung. :)
Để tương tác nhận lệnh liên kết với phím tắt (hoặc chuỗi phím trong thuật ngữ Emacs), hãy xem câu trả lời đã chọn.
Để nhận lệnh liên kết với một chuỗi khóa nhất định theo chương trình, hãy sử dụng hàm key-binding
hoặc hàm lookup-key
nhận một chuỗi khóa và trả về lệnh liên kết của nó. Chức năng key-binding
là những gì C-h k
sử dụng.
(key-binding (kbd "C-h m"))
trả về lệnh bị ràng buộc C-h m
bằng cách tìm kiếm trong tất cả các sơ đồ bàn phím hiện tại. Hàm lookup-key
tìm kiếm trong một sơ đồ bàn phím:
(lookup-key (current-global-map) (kbd "TAB")) ; => indent-for-tab-command
(lookup-key org-mode-map (kbd "TAB")) ; => org-cycle
(lookup-key text-mode-map (kbd "TAB")) ; => nil
(lookup-key isearch-mode-map (kbd "TAB")) ; => isearch-printing-char
Đối với lập trình nhận tất cả các chuỗi khóa liên kết với một lệnh nhất định, where-is-internal
có lẽ là hàm để sử dụng. Tên của hàm kết thúc bằng internal
dường như gợi ý rằng nó không dành cho người dùng Emacs để sử dụng trong các tệp init của họ nhưng hàm này có chuỗi doc dường như gợi ý khác. Bất kỳ ai đang cân nhắc sử dụng where-is-internal
trước tiên nên kiểm tra xem các khóa ánh xạ lại có thể đạt được mục tiêu của họ hay không.
Một giải pháp thay thế để tìm các khóa được liên kết với một lệnh cụ thể (ví dụ forward-char
:) là substitute-command-keys
(ví dụ (substitute-command-keys "\\[forward-char]")
:). Điều đó đặc biệt hữu ích trong các văn bản lớn hơn.
where-is-internal
cho thấy bạn có thể sử dụng nó. Ngoài ra, thông thường chúng tôi sử dụng một định dạng như where-is--internal
(lưu ý dấu gạch ngang kép) cho các chức năng "riêng tư".
-internal
được mô tả ở đó: gnu.org/software/emacs/manual/html_node/elisp/… . Nó nên được sử dụng cho các hàm C nội bộ.
Một câu hỏi cũ, nhưng vì lợi ích của người đọc mới, có một số cách hay ho khác để xem các ràng buộc chính
M-x describe-bindings
Liệt kê tất cả các ràng buộc hiện có, sử dụng isearch, doing, v.v. để tận dụng tốt danh sách này.
M-x describe-prefix-map
Điều này hiển thị tất cả các ràng buộc có sẵn từ chế độ hiện tại, bạn có thể sử dụng bộ đệm hiển thị như bạn làm với bất kỳ bộ đệm Emacs chỉ đọc nào khác, chẳng hạn như bạn có thể tự do tìm kiếm các chuỗi, v.v.
M-x describe-mode
Ngoài việc cung cấp cho bạn thông tin chung về chế độ hiện tại, nó cũng sẽ liệt kê tất cả các ràng buộc chính có sẵn.
M-x describe-minor-mode
Bạn sẽ được nhắc nhập tên của chế độ phụ, sau đó được hiển thị thông tin và các ràng buộc chính cho chế độ phụ đó.
LƯU Ý : Các ví dụ bên dưới sử dụng các gói bổ sung (có sẵn từ MELPA )
Điều này cho bạn thấy các ràng buộc ngay trước khi bạn cần chúng. Nhập một tiền tố, chẳng hạn C-x
hoặc C-c
và danh sách các ràng buộc có sẵn trong tiền tố đó sẽ được hiển thị.
Bạn cũng có thể xem danh sách các ràng buộc chính có sẵn từ chế độ hiện tại bằng cách sử dụng:
M-x which-key-show-top-level
Sẽ rất hữu ích khi liên kết which-key-show-top-level
với một hợp âm chính mà bạn chọn, vì vậy bạn có thể xem các phím có sẵn từ bất kỳ đâu.
Ví dụ, C-s
( isearch-forward
) có một bản đồ khóa mở rộng thường không được biết đến. Ví dụ: M-s o
bắt đầu occur
sử dụng chuỗi tìm kiếm hiện tại, tôi đã không biết về điều này trong nhiều năm sử dụng Emacs. Có mặt which-key
xung quanh đã giúp tôi khám phá nhiều đá quý hiếm ở Emacs.
https://github.com/justbur/emacs-which-key
Phím hướng dẫn hoạt động theo cách giống như which-key
tôi khuyên bạn nên xem qua để so sánh các tính năng.