Simply put, programmers who prefer Vim or Emacs to full-blown IDEs usually feel this way for one or more of the following reasons:
One last point I want to make is that Vim and Emacs actually can support many IDE features anyway, so for example, you could use intellisense/autocomplete type of stuff in Vim and Emacs, but you would need to install plugins or customize them a bit... Still, may be worth the happy medium of not having a giant bloater like Visual Studio.
The text editor is one important element of the software tools approach to software development.
IDE's violate that approach.
The premise of software tools is to do one thing well, in a way that can be combined with other tools.
IDE's attempt to be all things to the developer.
IDE's are not portable. I can use VIM to write in any language on any platform with any other toolset. Further if VIM is not available - VI is and my VIM knowledge remains useable.
Alot of the work I do is with embedded systems - these often do not have GUI's. I can ssh to an embedded system write code in VIM and build it on the target.
Further. I use the same tool for everything. I write code in VIM, edit Makefiles, edit error logs, edit shell scripts, edit configuration files, .....
Because it’s readily available even on the target machines.
IDEs are good (for some; I’m not one of them). Besides code editing, which is poorly supported in many IDEs, they offer a lot of other functionality like building/compiling, editing a user interface file, and so on.
Yet, I use Emacs. I simply like it. I worked with Vim for about 15 years, and switched to Emacs a few years ago. But as my projects vary a lot in language and framework, I can’t really stick to an IDE.
I do have Android Studio on my machine, though. I build my projects with that, because I didn’t have the time to learn how to do it yet. But I edit all the Kotlin files in Emacs, because Android Studio doesn’t understand C-x C-s. So yeah, muscle memory, too.
At the end I can’t say ViM/Emacs is better than any IDE. What is more important: choose a tool, stick to it, and learn it well. It will become an extension to your arms soon, and that is what makes you productive.
A more simple editor will help you be a better developer, at least I think so.
IDEs will auto complete methods and stuff, and you won't learn and remember the API of the language you are using.
Vim or Emacs are customizable and work EVERYWHERE. So it's a big win. Also, they are free, not all IDEs are.
I can have my Vim setup on Github and use it on all computers I work on. Also, when you work with linux servers, knowing Vim (same goes for Emacs) can help you and save time.
I use the 2, Vim for code, and Emacs for documentation. Vim is a must for me, as of a few years ago, I started to feel some pain in my hands and right shoulder, and I decided to go full keyboard. I feel so better now. (+ mechanical keyboard and track ball)
Last point, my co-workers almost all code with the mouse, even to copy-paste variables! It's insane, as a developer, you have to type to remember the flow of your program.
I don't understand young devs nowadays saying they think programming is cool, but don't type code and copy/paste as much as possible. What sad times...
IDE's come with a whole host of opinions. If your opinions closely match those of an IDE, then go for it! The reality is that it's hard for something so opinionated to work for all scenarios (e.g. languages, projects, etc) all the time.
A more minimal approach like vim provides (I'm sorry, I can't suggest Emacs as a minimal approach with a straight face) is more likely to work in more scenarios simply because it gets out of the way of a developer. Combine that with an extensive, mature, plugin system means you can customise it to your heart's content if you choose to.
Whilst I can't stand either -- I have a great distaste for emacs -- the use of simpler editors is easy to understand if you know what the hell you are doing.
Honestly, MOST of the features of IDE's just get in my damned way! Code folding more often than not just hides bugs or prevents you from seeing the whole picture, IDE's often restrict you to a single window for each set of code defeating the point of large high resolution displays and/or multiple displays, auto-completion you end up wasting more time correcting than having it help you, etc, etc.
.. and more often than not their UI wastes endless pointless amounts of screen space on "code management" tools or stupid side panels and toolbars that would be better devoted to just "SHOW ME THE DAMNED CODE!!!"
But I'm a bit of an extremist on this count, since I find even colour syntax highlighting to be a drawback since it's an illegibly useless acid trip doing NOTHING of value for me as a programmer. I hated it the first time I saw it in Turbo Pascal 4 back in the '80's, and my opinion of it has only gone downhill as the decades have passed!
Clean simple lightweight tools that let you have multiple windows open side-by-side (well written code is usually taller than it is wider anyways, leverage that huffing widescreen or multiple displays!), with nothing that gets in the damned way of reading the code or GOD FORBID writing it.
Like a great many things these days there is so much incompetent GARBAGE being touted as "easier" or "helpful" or "being more productive" that's more echo-chamber cultist hoodoo-voodoo than fact. Fancy IDE's, RAD's, and so forth squarely fall into that classification for me as a developer. It's ALMOST as mind-numbingly idiotic as using a WYSIWYG to build a website!
If you can't program productively using just a flat editor with the most basic of features and HAVE to rely on a tool to handle the simplest of tasks, you're probably a really bad developer!
win32pad, editplus, notepad++, flo's notepad2 (what I use), sublime, vi, vim... clean simple doesn't get in the damned way. Anything fancier is typically just covering up for incompetence.
SO many times I've ended up in workplaces that "required" you use whatever pet IDE their project lead had a boner for at the time, and I always ended up screaming at the display "FOR *** SAKE JUST LET ME SEE ALL THE CODE AND EDIT IT!!!"
Of course with so many today just blindly copypasting other people's work together and going "wah wah, I don't wanna type" every five minutes with the TLDR twitter generation mouth-breather mentality, it's not surprising that IDE's exist or there are fools that buy into their lies.
Ivan Bernatović
Full stack web developer
Gates D
Well, when everything works well, I prefer editors like VS Code, there are a bunch of nice features and plugins.
But when the plugins and features can not satisfied me, or there are bugs in the editor, I would remember the Emacs, maybe just because you can break it down and hack it.