Мне нравится использовать recentf
режим в Emacs, который выдает список файлов, которые я недавно открыл. Этот список постоянен между сеансами, поэтому я могу получить доступ к файлам, которые использовал довольно давно.
Однако недавно я начал использовать Emacsclient для подключения к серверу Emacs, который автоматически включается при его регистрации. В целом, это было большое улучшение. Однако recentf
режим начал пропускать большинство файлов, которые я открывал, каждый раз, когда перезагружал свой компьютер. Он запоминает некоторые из них, и я не вижу схемы, в которой записываются файлы.
Как я могу исправить это поведение? Как я могу записать все файлы, которые я посещаю, и запомнить их между сеансами?
emacs -nw
, загрузив сервер и RecentF, затем запустивrecentf-mode 1
иserver-start
в таком порядке, и не смог воспроизвести вашу проблему. Можете ли вы опубликовать свой файл .emacs где-нибудь (например, pastebin) вместе с примером того, как вы запускаете emacs и emacsclient?emacsclient -c --alternate-editor="" %f
. Возможно, проблема в том, что я не закрыл Emacs до выключения компьютера, но я не уверен. Ручное убийство Emacs перед выключением кажется полезным, но это не очень хорошее решение.Ответы:
У меня была точно такая же проблема, и я решил ее, сделав два изменения. Сначала, после этого поста , я создал функцию для автоматического вызова
recentf-save-list
по таймеру. Таким образом, каждые несколько минут мы автоматически переписываем файл ~ / .recentf:Другая вещь, которую я сделал, это добавила скрипт выключения в мой менеджер дисплеев (lightdm), который изящно закрывал сервер emacs при каждом выходе из системы или завершении работы. То, как вы это сделаете, будет зависеть от вашего диспетчера отображения, но мой сценарий просто выглядит
Было бы также неплохо иметь ловушку, которая автоматически перезапускалась
recentf-save-list
каждый раз, когда клиент «отключался» от сервера, но я не мог определить правильные ловушки.источник
server-done-hook
. Лично я используюserver-visit-hook