迫使neotree留在项目根目录

kwn*_*wnd 5 emacs

我正在使用neotree和projectile.我可以使用neotree-find-project-root在项目根目录下打开neotree,它很漂亮.

当我在子文件夹中打开文件时,它会将neotree根目录更改为包含该文件的文件夹.这对我来说没有什么用,如果neotree视图仍然是项目的根.

我可以强制neotree始终显示项目根文件夹,而不是自动下降到子文件夹吗?

(使用neotree-find-project-root将neotree关闭再打开会将它带回root,但手动执行此操作会很痛苦.必须有办法自动执行此操作吗?)

Tim*_*ler 1

我没有找到配置 Neotree 来执行此操作的方法。您可以考虑向neotree的开发人员提交问题,因为这似乎是一个常见的功能请求。

作为一种黑客修复,你可以尝试这样的事情。

(add-hook 'find-file-hook
    (lambda ()
        (let ((buffer (current-buffer)))
            (neotree-find (projectile-project-root))
            (set-buffer buffer))))
Run Code Online (Sandbox Code Playgroud)

每次打开新文件时都会运行此挂钩。它将 neotree 目录更改为射弹项目根目录,然后将当前缓冲区设置为您正在使用的原始缓冲区。