键入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疯狂删除临时书签文件。 ?
也许你试图使用“书签文件书签”?或者无论如何,意外地击中了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
而不是。
它看起来像某个地方(例如检查你的.emacs文件)已打开bmkp-temporary-bookmarking-mode
。启用该模式后,您创建的任何书签都只适用于当前会话 - 它们不会保存到您的书签文件中。
这意味着您的书签文件位置设置将被忽略。 (注意,顺便说一句,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
的值永远不会更改,除非您的自定义。)
这是一个很老的问题,但由于我遇到了同样的问题而其他答案对我没有帮助,我会发布我的解决方案:
我正在使用desktop.el中的桌面文件,并在桌面文件中设置了临时模式!从我的所有桌面文件中删除该设置修复了该问题。
这可能很方便:
find ~ -name .emacs.desktop -print0 | xargs -0 grep -l bmkp-temporary-bookmarking-mode