Emacs speedbar-如何修复基本目录(不随缓冲区切换而更改)

Emacs speedbar-如何修复基本目录(不随缓冲区切换而更改),emacs,emacs-speedbar,Emacs,Emacs Speedbar,使用speedbar一段时间后,我发现它会根据当前显示的缓冲区更改基本目录 如何禁用它?我只希望在切换到另一个缓冲区时speedbar不做任何事情。我认为在普通speedbar中不可能有这种行为(在查看变量、函数和自定义窗口之后) 但是,如果您查看该软件包,我会看到一个选项:“sr speedbar刷新关闭”。一旦调用,它应该禁用刷新;坚持到底 这是可能的。将其添加到.emacs文件: (set 'speedbar-update-flag nil) 您还可以使用切换更新 M-x speedba

使用speedbar一段时间后,我发现它会根据当前显示的缓冲区更改基本目录


如何禁用它?我只希望在切换到另一个缓冲区时speedbar不做任何事情。

我认为在普通speedbar中不可能有这种行为(在查看变量、函数和自定义窗口之后)


但是,如果您查看该软件包,我会看到一个选项:“sr speedbar刷新关闭”。一旦调用,它应该禁用刷新;坚持到底

这是可能的。将其添加到.emacs文件:

(set 'speedbar-update-flag nil)
您还可以使用切换更新

M-x speedbar-toggle-updates

除了正确的@PascalVKooten答案外,在speedbar树中导航时还有一个恼人的问题:您丢失了开始目录。以下代码有助于使用speedbar框架中的“h”键返回初始目录:

  (setq var_start-path default-directory)

  (define-key speedbar-file-key-map (kbd "h")
                  (lambda() (interactive)
                    (when (and (not (equal var_start-path
                                           sr-speedbar-last-refresh-dictionary))
                               (not (sr-speedbar-window-p)))
                      (setq sr-speedbar-last-refresh-dictionary var_start-path))
                    (setq default-directory var_start-path)
                    (speedbar-refresh))
                  )

此代码是从包代码中提取的。这个软件包很有趣,但对我来说不起作用。

感谢现在转向sr speedbar即使您安装了sr speedbar,但仍然使用普通的旧speedbar,这仍然是正确的答案。即使您
M-x speedbar
(而不是
M-x sr speedbar open
),运行
M-x sr speedbar refresh off
也可以工作。