Saya suka menggunakan recentf
mode di Emacs yang menghasilkan daftar file yang baru saja saya buka. Daftar ini persisten di antara sesi, sehingga saya bisa mendapatkan file yang saya gunakan cukup lama.
Namun, saya baru-baru ini mulai menggunakan Emacsclient untuk terhubung ke server Emacs yang secara otomatis dihidupkan ketika saya login. Secara keseluruhan, ini merupakan peningkatan besar. Namun, recentf
mode mulai kehilangan sebagian besar file yang saya buka setiap kali saya me-restart komputer saya. Itu mengingat beberapa dari mereka, dan saya tidak bisa melihat pola di mana file direkam.
Bagaimana saya bisa memperbaiki perilaku ini? Bagaimana saya bisa merekam semua file yang saya kunjungi dan mengingatnya di antara sesi?
emacs -nw
, memuat server dan latestf, kemudian menjalankanrecentf-mode 1
danserver-start
dalam urutan itu dan tidak dapat mereproduksi masalah Anda. Bisakah Anda memposting file .emacs Anda di suatu tempat (seperti pastebin) bersama dengan contoh bagaimana Anda memulai emacs dan emacsclient?emacsclient -c --alternate-editor="" %f
. Masalahnya mungkin dengan saya tidak menutup Emacs sebelum mematikan komputer saya, tapi saya tidak yakin. Membunuh Emacs secara manual sebelum mematikan tampaknya membantu, tetapi itu bukan solusi yang bagus.Jawaban:
Saya mengalami masalah yang sama persis, dan saya menyelesaikannya dengan membuat dua perubahan. Pertama kali setelah posting ini , saya membuat fungsi untuk secara otomatis memanggil
recentf-save-list
timer. Maka setiap beberapa menit, kami secara otomatis menulis ulang file ~ / .recentf:Hal lain yang saya lakukan adalah menambahkan skrip shutdown ke display manager (lightdm) saya yang dengan anggun menutup server emacs setiap kali saya logout atau shutdown. Cara Anda melakukan ini akan tergantung pada manajer tampilan Anda, tetapi skrip saya terlihat seperti itu
Akan lebih baik jika memiliki kait yang secara otomatis dijalankan kembali
recentf-save-list
setiap kali klien "terputus" dari server, tetapi saya tidak dapat menemukan kait yang tepat.sumber
server-done-hook
. Secara pribadi saya menggunakanserver-visit-hook