speedbar - как исправить базовую директорию (не менять при переключении буфера)
Некоторое время спустя я использовал speedbar и обнаружил, что он изменит базовый каталог в соответствии с текущим отображаемым буфером.
Как мне это отключить? Я просто хочу, чтобы спидбар ничего не делал, пока я переключался на другой буфер.
3 ответа
Я не думаю, что это возможно в обычном Speedbar (после просмотра переменных, функций и окна настройки).
Однако, если вы посмотрите на пакет SrSpeedbar, я увижу опцию: "sr-speedbar-refresh-turn-off". После вызова он должен отключить обновление; придерживаться того, где он находится.
Это возможно. Добавьте это в ваш файл.emacs:
(set 'speedbar-update-flag nil)
Вы также можете переключить обновление с
M-x speedbar-toggle-updates
Помимо правильного ответа @PascalVKooten, при навигации по дереву скоростных панелей возникает досадная проблема: вы потеряли стартовый каталог. Следующий код помогает вернуться в исходный каталог с помощью клавиши '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))
)
Этот код извлечен из кода пакета projectile-speedbar. Этот пакет интересен, но он не работает для меня.