Dari waktu ke waktu saya mengamati perilaku tak terduga saat mengedit teks. Sumber pertama saya biasanya digunakan C-h k
untuk mencari tahu fungsi apa yang dipanggil oleh urutan kunci yang diberikan. Namun, kadang-kadang dokumentasi bertentangan dengan perilaku yang diamati. Dalam kasus ini, saya biasanya berasumsi bahwa beberapa paket lain telah terhubung ke fungsi atau urutan tombol itu dan memodifikasi perilakunya.
Bagaimana saya bisa mengetahui fungsi mana yang terhubung ke urutan kunci saya?
Salah satu contoh yang saya temui baru-baru ini adalah saya menekan "tombol dan tanda kutip dimasukkan pada awal dan akhir wilayah aktif. Saya memiliki kecurigaan bahwa ini bukan perilaku Emacs default, jadi saya biasanya C-h k "
mencari tahu fungsi apa yang sebenarnya dipanggil.
The describe-key
dokumentasi mengatakan kepada saya bahwa fungsi self-insert-command
itu dipanggil, yang built-in fungsi. Singkatnya, setelah beberapa percobaan dan kesalahan, saya dapat menentukan bahwa perilaku tersebut disebabkan oleh electric-pair-mode
. Di masa depan, apakah ada cara yang lebih cepat untuk sampai pada kesimpulan ini daripada mematikan paket yang dicurigai satu per satu sampai menemukan pelakunya?
electric-pair-mode
berfungsi dengan menghubungkan ke post-self-insert-hook
, dan bukan dengan mengubah keybinding.
C-h k
memberi tahu Anda dengan tepat apa yang terjadi pada penekanan tombol. Jika Anda melihat dokumentasi untuk self-insert-command
, itu sangat jelas mengatakan post-self-insert-hook
dijalankan setelah perintah selesai.
after-change-functions
seperti Jordon menyebutkan dalam jawabannya? Dokumentasi untuk suatu fungsi mungkin tidak akan secara khusus menyebutkan kaitan itu, bukan?
C-h k
+ kait standar == perilaku lengkap (lebih atau kurang). Tentu saja kadang-kadang meninggalkan banyak kemungkinan, tetapi masih jauh lebih transparan daripada sistem perangkat lunak kompleks lainnya yang saya tahu.
electric-pair-mode
diaktifkan hanya dalam beberapa mode utama? Apakah Anda masih melihatself-insert-command
untuk"
ketika Anda melakukanC-h k
sementaraelectric-pair-mode
aktif?