I'd start by listing features you need from your IDE in order of importance.
Think about (random order):
- Language support (native support/need to import specific plugin)
- project tools support (eg. cmake, maven, gradle, so you can easily switch between different environments)
- editor power (make your changes fast, refactor easily, repeat changes, shortcuts and tricks etc.)
- version control support
- easy to use
- completion, snippets, etc.
- speed (how long it takes to launch, how much memory/cpu it consumes)
- compilation speed/support
Of course you can consider many more features and find them much more important than the ones I listed here. It's totally individual preference, since that's you who has to be comfortable.
If you want to use the power of VIM you have basically three options:
1. use VIM, customize it and make it your unique IDE, totally adopted to your needs
Start with vanilla VIM and incrementally add settings and plugins you need. Check out existing configs and adapt them. To make it fully fledged IDE I'd recommend some plugins:
- CtrlP - fuzzy seach, really powerful, must-have
- NerdTree - classic file browser
- vim-dispatch - for deployment, fast and easy
- vim-git, vim-gitgutter, vim-fugitive - for awesome version control
- xptemplate, supertab, syntastic - for autocompletion and snippets
- vimgdb - for debugging
2. Use existing VIM config
I recommend one of these:
Example VIM configs
or this:
janus
3. Use IDE with VIM plugin/mode
Many of today's top IDEs have vim-mode or vim plugin easily available. For C++ I recommend QtCreator, because it's really fast and easy-to-use, and it's FakeVIM mode works really well. For JVM-based languages I recommend IntelliJ IDEA, because it's really powerful and stable. It's VIM plugin also works really well, and you can easily mix IDE's shortcuts with VIM commands, adapting it to your needs.
Both can be customized with many useful settings placed in your home directory (for IntelliJ it has to be .ideavimrc).