Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Emacs 书签&x2B;使用临时文件,尽管请求了特定文件_Emacs_Bookmarks - Fatal编程技术网

Emacs 书签&x2B;使用临时文件,尽管请求了特定文件

Emacs 书签&x2B;使用临时文件,尽管请求了特定文件,emacs,bookmarks,Emacs,Bookmarks,键入C-xrl后,我得到一个名为*书签列表* 在这个缓冲区中,我看到: Bookmark file: /tmp/bmkp-temp/19236bkt 如果打开“帮助”(即按h),我会看到: 尽管我的.emacs文件中有以下内容,但仍然存在这种情况: (setq bookmark-file "~/.emacs.d/bookmarks") (setq bookmark-default-file "~/.emacs.d/bookmarks") (setq bmkp-default-bookmark-

键入
C-xrl
后,我得到一个名为
*书签列表*
在这个缓冲区中,我看到:

Bookmark file:
/tmp/bmkp-temp/19236bkt
如果打开“帮助”(即按
h
),我会看到:

尽管我的
.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疯狂地删除临时书签文件

某个地方(例如,检查你的.emacs文件)似乎打开了
bmkp临时书签模式
。当该模式处于启用状态时,您创建的任何书签都仅用于当前会话——它们不会保存到书签文件中

这意味着您的书签文件位置设置将被忽略。(请注意,顺便说一句,
bmkp default bookmark file
是一个函数,而不是一个变量——它不是您可以设置的。您不需要所有这些书签文件设置;有些是多余的:来自旧版本Emacs bookmarking的旧名称。)

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

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 正在清空书签文件'c:/DOCUME~1/me/LOCALS~1/Temp/bmkp-Temp-5348su1'。。。 正在保存文件c:/Documents and Settings/me/Local Settings/Temp/bmkp-Temp-5348su1。。。 写入c:/Documents and Settings/me/Local Settings/Temp/bmkp-Temp-5348su1 清空书签文件'c:/DOCUME~1/me/LOCALS~1/Temp/bmkp-Temp-5348su1'…完成 看起来你还有很多事情要做(掌舵等等)。当试图理解或调试一个问题时,它有助于尽可能缩小范围。谁能说出这里可能涉及的其他交互作用

尽管如此,我的建议是不要开始使用临时书签模式。我不建议您在对Bookmark+非常熟悉之前使用它。您可以在不使用此模式的情况下使用临时书签

以下是关于使用临时书签的文档:

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

Thx--德鲁


更新2019-04-21:

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

现在应该可以了。启用
bmkp临时书签模式
现在将
bmkp last as first bookmark file
重置为
nil
,因此,如果您在仍然启用临时模式的情况下退出,那么当您在新会话中加载书签文件时,读取的文件是
书签默认文件
的值。(默认文件
书签
的值永远不会更改,除非您的

定制。)

也许您试图使用“书签文件书签”?或者不管怎样,不小心撞到了
C-x p x

它们声称对应于,“
bmkp set bookmark file bookmark
,绑定到
C-x p x
”。对于我的Emacs来说,这不是真的

通过键入
C-xpc-h
,我可以检查以
C-xp
开头的键绑定。我发现

  • C-x p x
    被绑定到
    bmkp切换设置上的自动temp
    ,并且

  • C-x p y
    绑定到
    bmkp设置书签文件书签


然后,链接应该改为
C-xpy

这是一个很老的问题,但由于我有同样的问题,而其他答案对我没有帮助,我将发布我的解决方案:

我正在使用desktop.el中的桌面文件,并且在桌面文件中设置了临时模式!从我的所有桌面文件中删除该设置修复了该问题

这可能很方便:

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

它似乎来自
bookmark+
,因此您可能想联系它的作者。/tmp/bmkp-temp-19236bkt包含临时书签,~/.emacs.d/bookmarks包含持久书签。这两个键绑定自2011年以来一直与现在一样,正如您所说。你引用的文档中的打字错误早在2014年就被修复了(可能是因为你在这里的帖子,我不记得了)。谢谢。
find ~ -name .emacs.desktop -print0 | xargs -0 grep -l bmkp-temporary-bookmarking-mode