Apa cara terbaik untuk mendeteksi penekanan tombol (misalnya melalui kail) yang tidak mengedit buffer? Maksud saya hal-hal seperti tombol panah untuk gerakan titik, panggilan ke beginning-of-buffer
, dll.
Alasan untuk ini adalah bahwa saya sedang mengerjakan beberapa ycmd
binding untuk emacs, dan saya ingin dapat mendeteksi (setidaknya secara heuristik) ketika pengguna telah berhenti mengedit dan bergerak di sekitar buffer. Ini adalah saat yang tepat untuk mengirim konten buffer untuk parsing. Klien vim melakukan ini ketika pengguna keluar dari mode penyisipan, dan saya mencoba untuk meniru perilaku itu.
self-insert-command
untuk membatalkan dan menjadwal ulang penghitung waktu alih-alih menggunakan penghitung waktu idle. Dengan cara ini, bahkan jika pengguna melakukan sesuatu, penghitung waktu tidak diatur ulang kecuali "sesuatu" adalah penyisipan teks.
after-change-functions
adalah mekanisme umum untuk bereaksi terhadap perubahan teks.
post-command-hook
. Itu akan memicu semuanya, jadi Anda mungkin perlu memfilter apa yang memicu sebelum mengambil tindakan apa pun yang Anda inginkan.
buffer-chars-modified-tick
fungsinya mungkin bermanfaat.