While I would never sell it as "turning vim into an IDE", I use most of these plugins. ctrl-P is great, but I would probably switch to fzf if I was bothering to update my vimrc and plugins lately.<p>Fundamentally, I think people trying to sell emacs/vim with plugins as "turn X into an IDE" are sort of not getting what people see and get from IDEs, though. There's quite a bit more integration that goes into IDEs and what you're making is a pretty barebones/poor IDE with these plugins.<p>Most languages, though, don't need an actual IDE for them to be great. You need the auto-completion, automatic compilation/error checking, jump to definition, easy-to-reach documentation, etc., for them to instantly be super productive while coding.<p>Spacemacs with Haskell plugins is one of the best coding experiences I've had and it even taught me some patterns that I didn't know about. Another highlight is OCaml tooling that works really great with both Emacs and vim.
Having seen this article when I first started using vim seriously, I'd recommend fzf.vim in place of ctrl-p and ALE in place of Syntastic. The former I find is much more performant, and the latter takes advantage of Vim8 / neovim's asynchronous features. Plus, fzf.vim comes with Ag, which effectively replaces Ack.vim (albeit, with a little bit of tweaking).
I tried very hard to get used to Vim. I just feel compared to something like Visual Studio Code it's still very clunky.<p>I can understand why people who have used it for a decade prefer Vim over other text editors. They already know how to use it and how to integrate it into their workflow. For a newcomer this task, it seems, is nigh insurmountable.<p>Are there people who recently got into it and think it's the superior way to code and why?<p>For me, it was a lot of wasted time trying to learn Vim and finding out that other editors that I already use are as good or better.
Surprised they recommend a single colorscheme (jellybeans) at bottom of article.<p>Moving between machines and terminals different colorschemes seem to work better than others. This has like a million colorschemes (OK, slight exaggeration but it does have more than I've been able to review. Usually pick from 5 or 6 favorites commented out in .vimrc).<p><a href="https://github.com/flazz/vim-colorschemes" rel="nofollow">https://github.com/flazz/vim-colorschemes</a><p>Also they recommend <a href="https://github.com/Shougo/neocomplcache.vim" rel="nofollow">https://github.com/Shougo/neocomplcache.vim</a> (which I've used for years). Reviewing some vim plugins the other day I noticed that github hasn't been updated in 3 years and recommends another plugin now. (Don't plan on switching until it breaks though).<p>Guessing this article may be a few years old?<p><edit>Yes, it says 2014 at top
This is from [2014] and contains outdated information. Can someone update the headline?<p>As posted elsewhere, we now have vim 8, ALE instead of Syntastic, fzf/fzy instead of ctrl-p, and more.
That article seems somewhat out of date now.<p>For a more up to date approach I'd suggest Drew Neil's Modern Vim book (still in beta)[1] and using async language server plugins[2]<p>[1] <a href="https://pragprog.com/book/modvim/modern-vim" rel="nofollow">https://pragprog.com/book/modvim/modern-vim</a><p>[2] <a href="https://langserver.org/" rel="nofollow">https://langserver.org/</a>
"NERDTree satisfies this need of mine, replacing vim’s built-in netrw file navigator with a nicer-looking, less buggy, more fully featured alternative."<p>Wait, what's wrong with the built-in netrw? I actually started with NERDTree before I knew netrw existed. After discovering netrw, I switched to it instead. I think it looks just fine and prefer it to the more complex NERDTree.
I'm surprised the author didn't mention vim's sessions feature. The ability to close the editor/IDE and pick up right where you left off can save a lot of time when working with multiple large projects. It's easy enough to use on its own, but I have a small wrapper plugin that adds a few features for ease of use: <a href="https://github.com/bgrohman/vim-bg-sessions" rel="nofollow">https://github.com/bgrohman/vim-bg-sessions</a>.
Good list! Also, if you work with databases (particularly PostgreSQL) and want to work with them from Vim, check out dbext: <a href="http://jonathansacramento.com/posts/20160122-improve-postgresql-workflow-vim-dbext.html" rel="nofollow">http://jonathansacramento.com/posts/20160122-improve-postgre...</a><p>Link to dbext here: <a href="https://github.com/vim-scripts/dbext.vim" rel="nofollow">https://github.com/vim-scripts/dbext.vim</a>
I'll add one more suggestion:<p><a href="https://github.com/airblade/vim-gitgutter" rel="nofollow">https://github.com/airblade/vim-gitgutter</a><p>"A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks."
I recommend vim-workspace for IDE-like tabs. Helped me a lot in working with Vim buffers.<p><a href="https://github.com/bagrat/vim-workspace" rel="nofollow">https://github.com/bagrat/vim-workspace</a>
I'll be honest, the only time I try to tweak my VIM setup to be close to an IDE is when I have no other options (developing on a remote box). It's always a pretty frustrating experience IMO.
Why not just use an IDE if that's what you need with a Vim mode plugin rather than shoe horning Vim into something it is not really meant to be. Virtually every major IDE has a Vim mode.
There'll always be a part of me that wants to learn vim better and set something like this up.
Then there's the other part of me, that just uses Sublime instead.
This should be only an experiment at best. Please don't waste so much time trying to turn a tool into something that it is explicitely not.<p>If you just want an IDE experience use one that already exists. If you want to build your own out of plugins, use something like Emacs that has something like that as a core feature.<p>If you really want to learn vim though, then please learn the IDE that it is already integrated in: Linux. Linux based OSes are the most extensive IDEs because in the past nobody thought there would be a difference between a programmer and a computer user. So it's the most complete system that you can find. And additionally to solving all your programmer problems you also learn an OS and its components on the way.