Apakah ada mode untuk melihat kehilangan tombol secara realtime?

17

C-h lmenunjukkan buffer bantuan kerugian, yang menunjukkan penekanan tombol baru-baru ini. Menekan gmuncul untuk mengembalikannya, menyebabkannya diperbarui. Sayangnya, pengaktifan auto-revert-modetidak mengubahnya untuk memperbarui terus menerus.

Alangkah baiknya jika saya bisa membuka jendela atau bingkai lain dan hanya menampilkan kerugian secara real time untuk menunjukkan kepada pemirsa apa yang saya ketikkan. Ini juga dapat digunakan untuk memasangkan dalam sesi tmux / tmate. Beberapa video daring memiliki sesuatu seperti ini, tetapi tampaknya merupakan aplikasi eksternal dan spesifik OS.

Apakah ada cara yang baik untuk menunjukkan penekanan tombol secara real time saat terjadi dari dalam Emacs?

dgtized
sumber

Jawaban:

19

Mengatasi pertanyaan terakhir dalam posting Anda: Anda bisa mendapatkan log pembaruan otomatis perintah & stroke dengan menggunakan https://github.com/lewang/command-log-mode yang juga tersedia di MELPA - secara default hanya menunjukkan perintah non-sepele (jadi tidak ada perintah sisipkan atau gerakan kursor). Ini terlihat seperti ini:

masukkan deskripsi gambar di sini

Joost Diepenmaat
sumber
9

Iya. Ada paket bernama mwe-log-commands, yang tersedia di MELPA .

Jalankan saja M-x mwe:log-keyboard-commandsuntuk mulai merekam, kemudian M-x mwe:open-command-log-bufferakan membuka buffer yang menunjukkan perintah yang diketik secara real time.

command-log-mode adalah garpu yang lebih baru dan lebih dipelihara secara aktif mwe-log-commands, jadi mungkin lebih disukai saat ini.

sanityinc
sumber
7

Anda dapat menggunakan post-command-hook untuk memperbarui buffer kehilangan. Cuplikan berikut melakukan itu untuk Anda (berdasarkan buffer lokal), tetapi mengasumsikan Anda telah mengganti nama buffer kehilangan menjadi "Kerugian" (jadi dengan cara ini Anda masih dapat membuka buffer bantuan lainnya).

(defun update-lossage-buffer ()
  "Update the \"Lossage\" buffer.
For this to work, visit the lossage buffer, and call
M-x rename-buffer Lossage RET"
  (save-excursion
    (let ((b (get-buffer "Lossage")))
      (when (buffer-live-p b)
        (with-current-buffer b
          (revert-buffer nil 'noconfirm))))))
(add-hook 'post-command-hook #'update-lossage-buffer nil 'local)
Malabarba
sumber
3

Buffer bantuan kerugian tidak terkait dengan file pada disk. Karenanya mode auto revert tidak berfungsi. Alternatif realtime semu dapat digunakan (open-dribble-file "FILE")yang menulis semua penekanan tombol ke FILE. Menggunakan auto-revert-tail-modebuffer FILE dapat mencerminkan penekanan tombol.

Cara lain adalah dengan memberi saran self-insert-command(dan beberapa kunci awalan) untuk menggema ke buffer.

Vamsi
sumber