Emacs:如何在同一窗口中打开dired书签

5

我成功地让dired在单个窗口中工作,当我浏览文件系统时。

为了改善人机交互,我决定创建书签来标记我最常用的目录,例如'lwt','eve'等。但是每次我打开书签时,即使旧的dired缓冲区存在,新的dired缓冲区也会被创建。

如何使它在现有的dired缓冲区中打开书签?

3个回答

4

修改后:

原回答实际上是无用的。我很抱歉没有进行充分测试。我会将其保留在这里,以便其他可能的回答者不会像我一样被误导。

与此同时,我仔细查看了bookmark.el的源代码,dired+的修改对其没有任何影响。默认情况下,bookmark-jump函数使用switch-to-buffer函数作为其显示函数。bookmark-jump函数有一个可选的display-func参数,因此(需要一些elisp hacking的)可能的解决方案是创建一个函数,重复使用当前dired缓冲区(基于dired+源代码),并使用它调用bookmark-jump,如果这个概念可行,则绑定到一个键盘快捷方式。

原回答:

你观察到的行为只是的一般“导航时创建新的缓冲区”行为的副作用。这使得这个问题几乎成为How do I stop emacs dired mode from opening so many buffers?的重复。

在那里提出的解决方案和Dired Reuse Directory Buffer Emacs Wiki页面中提出的解决方案中,最简单的可能是安装Dired+包,并使用以下命令切换目录缓冲区的重用:

(toggle-diredp-find-file-reuse-dir 1)

在你的.emacs文件中。

我已经在我的.emacs文件中有这行代码了。它对除了书签打开之外的所有内容都有效。 - user4035
1
是的,我得出了同样的结论。我现在正在尝试使用elisp进行实验,并将在代码可以运行时在此处发布。 - user4035

0
如果这可以帮助 - 这就是我用来在同一缓冲区中打开我的书签的方法。
(defun my-bookmarks-list-same-buffer ()
  "Open *Bookmarks* in current buffer."
  (interactive)
  (bookmark-bmenu-list)
  (switch-to-buffer "*Bookmark List*"))
(global-set-key (kbd "s-b") 'my-bookmarks-list-same-buffer)

0

使用Bookmark+,至少可以通过C-x j j跳转到Dired书签并且如果它已经存在,则会重用Dired缓冲区。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接