在 NERDTree 中扩展当前目录而不更改根目录

在 NERDTree 中扩展当前目录而不更改根目录

有没有办法让 NERDTree 展开来显示当前文件的目录 -没有 弄乱工作目录或者改变树根

因此,当使用时baz.ext,它应该看起来像这样,而无需手动展开相应的树:

/ # project root
|+.../
|~foo/
| |~bar/
| | |-...
| | |-baz.ext # current file
| | `-...
|+.../

答案1

Vim:如何将 NERDTree 与当前打开的选项卡文件路径同步?

这个map <leader>r :NERDTreeFind<cr>答案对我有用。

答案2

我正在寻找一种解决方案,可以在每次 BufEnter 时自动执行此操作。这种简单的方法行不通,因为我再也无法离开我的 NERDTree 了 :-) - NERDTreeFind 将窗口更改为 NERDTree,当您返回包含文件的窗口时,它会再次触发。

我找到了解决方案:https://superuser.com/a/474298/175466,但我遇到了一个小问题:我通常将 cwd 设置为项目根目录,然后使用 NERDTree 和 CtrlP。有时我想编辑 cwd 之外的文件,例如 ~/.vimrc,NERDTreeFind 会将 cwd 更改为我的主文件夹。这也会更改树根目录,当我切换回来时,NERDTreeFind 会从我的主目录向下搜索文件(它很大)。

因此,我扩展了@Lambart 的解决方案,添加一个函数来检查当前文件是否在 cwd 内,如果在则只使用 NERDTreeFinds。

您可以在此处找到它要旨

答案3

“接受的答案”根本没有解决原始问题。问题是不要改变树根。 https://github.com/scrooloose/nerdtree/pull/72似乎是解决方案,但这个 PR 从未合并到代码中。什么是正确的解决方案?

相关内容