When I started using Vim the first plugin I downloaded was NERDTree, a sidebar file explorer similar to what the text editor I was leaving, Sublime Text, had. It was a good crutch to get me into managing multiple files in Vim, but as I get more comfortable in Vim I’m running into a problem detailed in this Vimcasts blog post, namely that when you open or split a new file from NERDTree, it is difficult to predict where the new window will open.
What you want instead is a way to call
vsplit (shortcutted to
vs) first, then get a directory in the window that will shortly be replaced by whatever file you chose to open or create.
I watched a YouTube video today and learned about netrw, Vim’s “default” file explorer, which apparently does exactly what I describe above.
The netrw documentation is pretty good. Important functionality includes:
% to create a new file,
d to create a new directory,
:e. to refresh the directory, and
- to go up a directory.
While I have adopted the style and philosophy of netrw over that those of NERDTree, I do have two lighter-weight plugins that help me out. The first is one created by Time Pope called Vinegar which adds some lightweight improvements to netrw.
The second, and more intrusive, is ctrlp, a fuzzy file finder. I have three keymappings in my vimrc associated with ctrlp:
" Ctrl- P mapping and two custom split keymappings (https://github.com/kien/ctrlp.vim) let g:ctrlp_map = '<c-p>' nmap <c-n>s :split<CR><c-w>j<c-p> nmap <c-n>v :vsplit<CR><c-w>l<c-p>
Thus I have un-installed NERDTree and have been using ctrlp and Vinegar. We’ll see how it goes.