Emacsサーバー/クライアントと連携するように最近のモードを取得するにはどうすればよいですか?

Emacsサーバー/クライアントと連携するように最近のモードを取得するにはどうすればよいですか?

私はrecentf 最近開いたファイルのリストを生成するEmacsのパターンを使用するのが好きです。リストはセッション間で維持されるため、以前に作業したファイルにアクセスできます。

しかし最近、Emacsclientを使用してログインしたときに自動的に開くEmacsサーバーへの接続を開始しました。全体的にこれは大きな改善です。しかし、recentfパターンが消え始めます。最大コンピュータを再起動するたびにファイルが開きます。それを覚えている一部そのうち、ログファイルのモードを見ることはできません。

この問題をどのように解決できますか?どうすれば記録として残すことができますか?みんなセッション間でファイルにアクセスして覚えていますか?

ベストアンサー1

私は同じ問題があり、2つの変更で解決しました。最初にフォローしてくださいこの投稿recentf-save-list、タイマーを自動的に呼び出す機能を作成しました。したがって、数分ごとに〜/ .recentfファイルを自動的に書き換えます。

(run-at-time nil (* 5 60) 'recentf-save-list)

私がしたもう一つのことは、ログアウトまたはシャットダウンするたびにEmacsサーバーを正常にシャットダウンするシャットダウンスクリプトをディスプレイマネージャ(lightdm)に追加することでした。これを行う方法はディスプレイマネージャによって異なりますが、私のスクリプトは次のようになります。

#!/bin/bash
emacsclient -e "(save-buffers-kill-emacs)"

クライアントがサーバー上で「接続が失われる」たびに自動的に再実行されるフックがあればいいのですが、recentf-save-list正しいフックが見つかりません。

おすすめ記事