vim and NERD Tree extension - adding a file
Asked Answered
M

2

428

When using the vim editor with the NERDTree plugin to navigate through the tree of your project, is there an easy way to create a new source code file under the currently highlighted directory?

Currently I go into my shell, add the file and then refresh the tree. There must be a better way.

Many answered 22/9, 2009 at 12:18 Comment(0)
S
909

Activate the NERDTree and navigate to the directory in which the new file should live. Then press m to bring up the NERDTree Filesystem Menu and choose a for "add child node". Then simply enter the file's (or directory's name) and you're done.

Slothful answered 22/9, 2009 at 14:13 Comment(6)
I'll add that if you're adding a directory name, remember to enter a "/" following the name.Vocalize
Type "?" and see more options of NERDTree that may save your time.Gertie
Is there a way to create several dirs in each other before the file being created... e.g. [ma] then: whereiam/newdir1/newdir2/somefile doesn't work, but [ma] then: whereiam/newdir1/newdir2/ works (though it gives some errors, the dirs are created).Taciturn
Any way to save a step, and automatically open the created file? Use the create option all the time, but 90% of time wish to start editing the file in a new buffer right after creation.Dayan
Is it possible to add two or more files at once in NerdTree by ma ?Haile
would it have been simpler to call them files instead of nodes? Or would that have not been nerdy enough?Tangerine
M
50

From vim you can run shell commands. So in this case I use:

:!touch somefile.txt

and then hit r to reload the nerdtree window.

The other thing to do is to just start the new file from within vim.

:e somefile.txt

One handy thing for this is that in my .vimrc I auto change the cwd to the directory my current file is in:

" Auto change the directory to the current file I'm working on

autocmd BufEnter * lcd %:p:h 

This way if I'm editing a file and want another one in the same place the path is changed right there. Opening any file from NERDTree sets the directory to the one that file is in.

Microfilm answered 22/9, 2009 at 13:8 Comment(1)
Hit R (capitalized) instead to refresh the window. Lowercase r refreshes only the directory under the cursor.Jasminjasmina

© 2022 - 2024 — McMap. All rights reserved.