Yar
Yar

Reputation: 7457

Using NERD tree as a Vim sidebar

I'm a new user of NERD tree in Vim and am obviously not that much familiar with its features.

When I'm using :NERDTreeToggle, the sidebar window always opens my home directory, ~. How can I change the default directory (like open a project in Sublime Text)?

Also, how can I keep this sidebar window open in all of the new tab windows (something like the Sublime Text sidebar)? Or at least, is there another alternative to this task?

Upvotes: 1

Views: 6479

Answers (2)

zechtz
zechtz

Reputation: 442

In your .vimrc file, add the following code, which will by default open Vim with a NERD tree sidebar of the current directory. So if you are in the projects directory and you type "vim" it will open Vim with a sidebar on the left showing all the files and directories in the projects folder

autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif

If you want toggle on and off the sidebar, just add this into your .vimrc file so that if you want to toggle the sidebar, just type Ctrl + N:

map <C-n> :NERDTreeToggle<CR>

Upvotes: 4

romainl
romainl

Reputation: 196536

Vim has no concept of "project".

The closest you can get without installing clunky plugins is the "current directory": when you start Vim, the "current directory" is set to the directory where you started Vim.

In your shell, this is easy to manage:

    $ cd /path/to/project
    $ vim
    :pwd --> /path/to/project

If you use gVim or MacVim, the "current directory" is usually set automatically to $HOME if you start Vim without a file so, either you find a way to start Vim in an arbitrary directory or you use :cd /path/to/dir as soon as possible.

Without argument, the :NERDTree* commands open the NERD tree window in the "current directory".

You can use :NERDTreeToggle /path/to/dir to make it display the content of a specific directory.

Or you can make sure you start Vim from your project's directory and NERD tree will do what you want it to do.

Upvotes: 2

Related Questions