Emacs: print key binding untuk sebuah perintah atau daftar semua key binding

100

Di Emacs (GNU 23.2, * nix), bagaimana saya bisa:

  1. daftar urutan kunci yang terikat pada perintah tertentu? Misalnya, bagaimana kita bisa membuat daftar semua urutan kunci yang dieksekusi save-buffers-kill-emacs, dengan keluaran dari urutan kunci terikat padanya? Dengan asumsi kita bisa melakukan ini, daftar urutan kunci yang terikat goto-lineharus mencetak output: M-g gpada instalasi default.
  2. daftar semua pengikatan kunci? Apakah C-h bmelakukan ini? Apakah itu akan mencetak binding saya sendiri?

Saya sadar bahwa menjalankan perintah secara langsung dapat mencetak urutan kunci yang dapat diaktifkan dengannya, tetapi tidak selalu demikian, dan beberapa hal terjadi, termasuk:
(1) output tidak bertahan lama, (2 ) perintah dijalankan.

Saya ingin perintah yang mencantumkan untuk saya (sebaiknya semua) binding yang dilampirkan ke perintah yang diberikan, tanpa menjalankan perintah, atau semacamnya.

Yktula
sumber

Jawaban:

138
  1. C-h f(atau M-x describe-function) akan menunjukkan pengikatan untuk sebuah perintah.

  2. Anda benar, C-h b(atau M-x describe-bindings) akan menampilkan semua binding. C-h m( M-x describe-mode) juga berguna untuk membuat daftar binding berdasarkan mode.

Anda juga dapat mencoba C-h k( M-x describe-key) untuk menunjukkan perintah apa yang terikat ke kunci. Misalnya, di mesin saya save-buffers-kill-emacstidak terikat pada apa pun, tetapi C-h k C-x C-cmemberi tahu saya bahwa C-x C-citu terikat save-buffers-kill-terminal. Ini akan mencantumkan semua binding untuk perintah pada saat yang sama.

Matt Curtis
sumber
10
+1, Juga ada C-h c(atau M-x describe-key-briefly) yang hanya memberikan fungsi kunci yang ditetapkan dalam ruang buffer mini.
Shannon Severance
Tidak yakin apakah ini harus menjadi pertanyaan terpisah, tetapi apakah mungkin untuk menampilkan semua keybindings / fungsi yang dimulai dengan kunci tertentu? Misalnya, binding apa yang dimulai dengan <f2>? Menekan <f2> setelah "Ch m" tidak berfungsi karena Emacs sedang menunggu kunci kedua.
SabreWolfy
1
Ditanyakan sebagai pertanyaan baru di sini: stackoverflow.com/questions/10330510/…
SabreWolfy
37

Bagaimana dengan adil

M-x where-is <COMMAND>

Anda mendapatkan informasi yang sama seperti yang Anda dapatkan C-h f.

Juga terikat pada C-h w, <f1> wdan <help> w.

Trey Jackson
sumber
Ini sebenarnya adalah jawaban yang benar untuk pertanyaan pertama, karena describe-functiontidak mencantumkan semua binding untuk fungsi seperti ignoreatau self-insert-command.
David Ongaro