当我浏览文件系统时,我设法在一个窗口中完成了繁琐的工作。
改善人体工程学,我决定为我最常用的目录创建书签,其短名称如:'lwt'、'eve' 等。但每次打开书签时,都会创建新的目录缓冲区,即使旧缓冲区存在。
如何让它在现有的 dired 缓冲区中打开书签?
最初的答案实际上是一个非答案。我为没有正确测试它而道歉。我会把它留在这里,这样其他潜在的回答者就不会像我一样被误导。
同时,我仔细查看了源代码,bookmark.el
修改dired+
对其没有任何影响。默认情况下,该bookmark-jump
函数使用该switch-to-buffer
函数作为其显示函数。bookmark-jump
然而有一个可选display-func
参数,所以一个可能的解决方案(涉及一些 elisp hacking)是创建一个函数,重用当前的 dired 缓冲区(基于dired+
源代码)并bookmark-jump
用它调用,如果这个概念有效,然后绑定那是一个键盘快捷键。
您观察到的行为只是dired的一般“导航时创建新缓冲区”行为的副作用。这一事实使这个问题几乎与如何阻止 emacs dired 模式打开这么多缓冲区?.
在那里和Dired Reuse Directory Buffer Emacs Wiki 页面提出的解决方案中,可能最简单的一个是安装Dired+包并切换目录缓冲区重用:
(toggle-diredp-find-file-reuse-dir 1)
在你的.emacs
文件中。
如果这可以帮助 - 这就是我用来在同一个缓冲区中打开我的书签的方法。
(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)
使用Bookmark+,至少bookmark-jump
( C-x j j
) 到 Dired 书签确实会重用 Dired 缓冲区(如果它已经存在)。