书签+使用临时文件,尽管已经要求特定文件

时间:2013-03-29 21:08:47

标签: emacs bookmarks

输入C-x r l后,我得到一个名为*Bookmark List*的缓冲区 在这个缓冲区中,我看到:

Bookmark file:
/tmp/bmkp-temp/19236bkt

如果我打开帮助(即按h),我会看到:

Bookmark file:  /tmp/bmkp-temp-19236bkt
Sorted:         
Filtering:      none
Marked:         0
Omitted:        0
Autosave bookmarks: no
Autosave list display:  yes

即使我在.emacs文件中有以下内容:

(setq bookmark-file "~/.emacs.d/bookmarks")
(setq bookmark-default-file "~/.emacs.d/bookmarks")
(setq bmkp-default-bookmark-file "~/.emacs.d/bookmarks")
(setq bmkp-last-as-first-bookmark-file nil)

为什么它使用的是我指定的书签文件?

我还注意到,当我加载Emacs时会发生以下情况:

Emptying bookmark file `/tmp/bmkp-temp-23808OMn'...
Saving file /tmp/bmkp-temp-23808OMn...
Wrote /tmp/bmkp-temp-23808OMn
Emptying bookmark file `/tmp/bmkp-temp-23808OMn'...done
...
Helm completion enabled
Emptying bookmark file `/tmp/bmkp-temp-23808bWt'...
Saving file /tmp/bmkp-temp-23808bWt...
Wrote /tmp/bmkp-temp-23808bWt
Emptying bookmark file `/tmp/bmkp-temp-23808bWt'...done
...

Emacs疯狂删除临时书签文件。 ?

3 个答案:

答案 0 :(得分:1)

它看起来像某个地方(例如检查您的.emacs文件)已打开bmkp-temporary-bookmarking-mode。启用该模式后,您创建的所有书签仅适用于当前会话 - 它们不会保存到您的书签文件中。

这意味着您的书签文件位置设置将被忽略。 (注意,BTW,bmkp-default-bookmark-file是一个函数,而不是变量 - 它不是你设置的东西。你不需要所有这些书签文件设置;有些是多余的:旧的旧名称Emacs书签的版本。)

我不知道你为什么要获得多个临时书签文件创建和保存。你没有提供完整的食谱。你应该只得到一个。这就是我在*Messages*中就这方面所看到的全部内容,例如:

  Emptying bookmark file `c:/DOCUME~1/me/LOCALS~1/Temp/bmkp-temp-5348su1'...
  Saving file c:/Documents and Settings/me/Local Settings/Temp/bmkp-temp-5348su1...
  Wrote c:/Documents and Settings/me/Local Settings/Temp/bmkp-temp-5348su1
  Emptying bookmark file `c:/DOCUME~1/me/LOCALS~1/Temp/bmkp-temp-5348su1'...done

看起来你还有很多东西(Helm等)。在尝试理解或调试问题时,有助于尽可能缩小范围。谁能说出这里可能涉及的其他互动?

所有这些都说,我的建议是开始使用临时书签模式。在你非常熟悉Bookmark +之前,我不建议你使用它。您可以在不使用此模式的情况下使用临时书签。

以下是使用临时书签的文档: http://www.emacswiki.org/cgi-bin/wiki/BookmarkPlus#toc55

最后,正如Stefan建议的那样,请通过电子邮件跟进。调试/讨论事情要容易得多。

Thx - 德鲁


更新2019-04-21:

我认为可能发生的事情是您在启用bmkp-temporary-bookmarking-mode的情况下退出Emacs。尽管Bookmark +(正确)不保存临时书签文件,但它并未阻止bmkp-last-as-first-bookmark-file的记录被更新为指向临时文件。在您的下一个Emacs会话中,由于bmkp-last-as-first-bookmark-file而加载了临时文件(如果它仍然存在)。

现在应该没问题。启用bmkp-temporary-bookmarking-mode现在会将bmkp-last-as-first-bookmark-file重置为nil,因此如果您在仍然启用临时模式的情况下退出,那么当您在新会话中加载书签文件时,读取的文件就是值bookmark-default-file。 (bookmark-default-file的值永远不会改变,除非你的 自定义。)

答案 1 :(得分:1)

也许您正在尝试使用“书签文件书签”?或者无论如何,意外地打C-x p x

声称这些内容符合EmacsWiki: Bookmark Plus / Bookmark-File Bookmarks,他们说“bmkp-set-bookmark-file-bookmark,绑定到C-x p x”。对于我的Emacs,这不是真的。

通过输入C-x p C-h,我可以检查以C-x p开头的密钥绑定。我找到了

  • C-x p x绑定到bmkp-toggle-autotemp-on-set

  • C-x p y绑定到bmkp-set-bookmark-file-bookmark

然后,链接应该改为C-x p y

答案 2 :(得分:0)

这是一个很老的问题,但是由于我遇到了同样的问题,而其他答案也无济于事,所以我将发布解决方案:

我正在使用来自desktop.el的桌面文件,并且在该桌面文件中设置了临时模式!从我所有的桌面文件中删除该设置即可解决此问题。

这可能很方便:

find ~ -name .emacs.desktop -print0 | xargs -0 grep -l bmkp-temporary-bookmarking-mode