在 Windows 上的 Emacs 中更改 .ido.last 历史文件的位置

tjm*_*tjm 3 emacs ido-mode

使用在 Windows 上启用 ido 模式的 Emacs,Emacs 尝试在退出时保存历史文件 .ido.last。该文件位于 C:/.ido.last,但它失败并显示权限被拒绝消息。这很奇怪,因为我实际上可以访问该文件夹。然而:

是否有更改 .ido.last 文件保存目录的命令?

jpk*_*tta 5

简答:(setq ido-save-directory-list-file "/some/file/name")

长答案:

我将所有记住 Emacs 状态的小文件保存在user-emacs-directory. 我不确定在 Windows 上这是什么,但我认为它是C:\Users\<username>\Application Data\.emacs.d\. 在 Unix 上,它是~/.emacs.d/. 该变量user-emacs-directory应该由 Emacs 定义,无需设置。

(setq emacs-persistence-directory (concat user-emacs-directory "persistence/"))
(unless (file-exists-p emacs-persistence-directory)
    (make-directory emacs-persistence-directory t))
(setq ido-save-directory-list-file (concat emacs-persistence-directory
                                           "ido-last"))
Run Code Online (Sandbox Code Playgroud)

您可能需要查看no-littering包,它为此类文件设置了更好的默认位置。