Vim is a text editor not an IDE. Having said that vim is highly configurable, and can be customized per individual and usually is, but can be used as an IDE. (there are purists out there too)
Vim can be customized to do more with plugins, and the all mighty .vimrc
file.
This leads to very individualized vim experiences and no two vims are identical (well, at least for very long).
But most setups follow along this general structure:
- A Plugin manager of your choosing (pathogen, Plug, vundle, etc) or install plugins manually
- A plugin for the file tree (NERDTree)
- A plugin for language specific syntax highlighting (not always needed, default syntax highlighter is pretty good)
- A plugin for auto-completion (omni-complete)
- A plugin for file search (ctrlp)
- any other plugin that you feel is necessary to complete your tasks
- all fine tuning can be done in your
~/.vimrc
file
The suggestions above are not the only ones that exist but are the ones that I use / have used, you should find ones that suite your needs best
If you are trying to start using vim as your main editor the path I would take is the following:
- Use vim as is... figure out what you actually need
- RTFM on vim and its config file, and see if what you want can be easily achieved via a few simple mappings.
- If a simple mapping cant handle it search for a plugin to do what you need and install it.
- If you find that you are downloading a lot of plugins then get a plugin manager
- Repeat steps 1-3 as needed
If you are too lazy to do 1-5, or just want something now
a) google vim dotfiles
or dotfiles projects
b) google setups like spf13
, dotvim
, janus
c) then trim the fat.
NOTE: A good rule of thumb to follow while editing your vimrc: Don't put anything in your vimrc you don't understand. This helps for several reasons to list a few though:
- keeps you safe
- helps to keep your vimrc lean
- keeps you educated
A good place to start can be found here
:cd
) 3) Vim has no concept of what a project is. So you will get many makeshift solutions designed around other's personal workflows 4) What do you need when working on a project? navigation? tags? Session? Settings?