原来的答案实际上是一个不答案。我很抱歉没有正确测试它。我将把它留在这里,这样其他潜在的回答者就不会像我一样被误导。
同时我仔细查看了源代码bookmark.el,dired+修改对它没有任何影响。默认情况下,该bookmark-jump函数使用该switch-to-buffer函数作为其显示函数。bookmark-jump但是有一个可选display-func参数,因此一个可能的解决方案(涉及一些 elisp hacking)是创建一个重用当前 dired 缓冲区(基于源dired+代码)并调用bookmark-jump它的函数,如果这个概念有效,则绑定到键盘快捷键。
您所观察到的行为只是dired一般“导航时创建新缓冲区”行为的副作用。这一事实使得这个问题几乎与How do I stop emacs dired mode from opening so much buffers?重复。。
在Dired Reuse Directory Buffer Emacs Wiki 页面提出的解决方案中,最简单的可能是安装Dired+包并使用以下命令切换目录缓冲区重用:
(toggle-diredp-find-file-reuse-dir 1)
Run Code Online (Sandbox Code Playgroud)
在你的.emacs文件中。