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

时间:2012-10-26 15:49:09

标签: emacs elisp bookmarks dired

当我浏览文件系统时,我设法在一个窗口中进行直接工作。

改善人体工程学,我决定为我最常用的目录创建书签,如短名称:'lwt','eve'等。但每次打开书签时,都会创建新的dired缓冲区,即使是旧的一个存在。

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

3 个答案:

答案 0 :(得分:4)

编辑:

原来的回答实际上是不回答。我为没有正确测试它而道歉。我会留在这里,所以其他潜在的回答者不会像我一样被误导。

我同时仔细研究了bookmark.el的源代码,dired+修改对它没有任何影响。默认情况下,bookmark-jump函数使用switch-to-buffer函数作为其显示函数。 bookmark-jump但是有一个可选的display-func参数,所以一个可能的解决方案(涉及一些elisp黑客)将创建一个重用当前dired缓冲区的函数(基于dired+源代码)并用它调用bookmark-jump,如果这个概念有效,那么将它绑定到键盘快捷键。

原始答案:

您正在观察的行为只是一般“在导航 dired 行为时创建新缓冲区的副作用。这个事实使这个问题几乎与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文件中。

答案 1 :(得分: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)

答案 2 :(得分:0)

对于Bookmark+,至少,bookmark-jumpC-x j j)到Dired书签会重新使用Dired缓冲区(如果已存在)。