4

Is there a way to make NERDTree expand to display the current file's directory - without messing with the working directory or changing the tree root?

So when working with baz.ext, it should look like this without manually having to expand the respective trees:

/ # project root
|+.../
|~foo/
| |~bar/
| | |-...
| | |-baz.ext # current file
| | `-...
|+.../
3
  • Mind telling me how you got that "|" characters in nerdtree? Have been looking for a way to do this but no luck
    – user900991
    May 3, 2018 at 10:24
  • I'm afraid I never did, the above was just a manual illustration (if I recall correctly).
    – AnC
    May 3, 2018 at 13:36
  • I asked in their public repo, the system (feature?!) was disabled 3 years ago
    – user900991
    May 5, 2018 at 6:28

3 Answers 3

13

Vim: How to synchronize NERDTree with current opened tab file path?

the map <leader>r :NERDTreeFind<cr> answer works for me.

5
  • though I can't upvote it without a 15 reputation ;) Nov 11, 2011 at 9:22
  • woohoo! I can upvote. And you have received a present for your kindness. I just had an upvote party! Nov 11, 2011 at 12:28
  • Actually, turns out this wasn't quite what I'd hoped for: The tree does not expand, but rather uses the current file's directory as root. (So in the example above, I'd just see the bar directory.) Since there doesn't seem to be an easy solution to this, the above's still good enough though.
    – AnC
    Nov 14, 2011 at 8:38
  • Sorry dude. But your upvotes were heard around superuser so something good came out of it (plus I use this answer now in my own .vimrc) Nov 18, 2011 at 16:52
  • 1
    With the latest version, NERDTreeFind does exactly what I want: github.com/scrooloose/nerdtree/pull/72 - so I guess you were prescient, pferdefleisch...
    – AnC
    Jan 4, 2012 at 14:33
3

I was looking for a solution for doing this automatically on every BufEnter. The naive approach didn't work as I couldn't leave my NERDTree anymore :-) - NERDTreeFind changes the window to the NERDTree and when you go back to the window with the file, it triggers again.

I found my solution in: https://superuser.com/a/474298/175466, but I had a slight problem with it: I normally set my cwd to the project root and then NERDTree and CtrlP around. Occasionally I want to edit a file outside the cwd, like my ~/.vimrc, and NERDTreeFind would change my cwd to my home folder. This also changes the tree root and when I switch back, NERDTreeFind would search the file from my home directory downwards (It's huge).

So I extended @Lambart's solution with a function that checks if the current file is inside the cwd and only NERDTreeFinds if it is.

You can find it in this gist

0
0

the "accepted answer" does not resolve the original ask at all. the ask is to not changing the tree root. https://github.com/scrooloose/nerdtree/pull/72 seems the solution but this PR has never been merged into the code. what is the right solution?

2
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Oct 22, 2022 at 2:56
  • This does not really answer the question. If you have a different question, you can ask it by clicking Ask Question. To get notified when this question gets new answers, you can follow this question. Once you have enough reputation, you can also add a bounty to draw more attention to this question. - From Review Oct 22, 2022 at 3:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .