It took me 2 weeks to switch to vim. Now I rarely use the vim itself, but I use vim plugins in all IDEs. To be honest, I don't like vim's plugin infrastructure, scripting language and a lot of other things, but the core - composable single-key commands - is a gem.
Emacs I gave a try for a month, and I still felt like a beginner. There isn't a single core idea that you can master; it feels like it's a never ending series of chords that you have to remember for every plugin and lisp code that you have to write to configure and personalize everything for yourself. And pre-configured distributions like Spacemacs feel even more complex. Evil mode behaves like vim 95% of the time, but 5% leaves you buffled and completely, utterly lost.
Sometime in the future, when I have enough time on my hands, I will build myself an emacs build from scratch, learning every plugin as I go along. Right after I build my own linux distribution from scratch - oh wait, I already did that, and it took less time and mental space than Emacs.
Often when I see a developer that I look up to actually work, they are on Emacs. Its definitely a small user base, but an influential one. I think if you were to limit the survey to readers of Hacker News, the proportion of Emacs users would be much higher.
Vim seems to be default installed on most Linux distributions, and Emacs isn't. If your work takes you across Linux servers, you're 99% sure to be "a Vim user" (in some capacity), regardless of what your daily programming environment is.
I prefer Emacs to Vim, but I prefer Idea for Java development over either, so since I mostly work on java projects on Linux servers, I actually use Vim significantly more than Emacs.
Interesting that you feel you can use Vim to write Java. I love Vim, really. It's my most favorite editor of all time. But for Java I wouldn't want to miss the auto-complete, auto-import, debugging and fuzzy search features of an IDE.
Anything else can quite easily be added via more plugins or by using a terminal multiplexer like tmux or screen (or a more complicated terminal like terminator, iTerm2, etc
I use vim/tmux exclusively for my development, and while I don't use Java, I don't feel that I'm missing features that my coworkers running atom/vscode/etc have. I will admit that stepping through a debugger might be a bit harder, but I seem to find a few debugger plugins around, so I'm guessing someone has solved that.
At the time I checked it, YouCompleteMe under the hood was running headless Eclipse as background for its features. So for me it was even worse than using the IDE directly. Now instead of one lightweight tool I had two tools to do the job of one.
If you are programming in Java most of the time. Vim and Emacs are both ruled for any serious work. Its just not possible to deal with that much verbosity without an IDE like Eclipse or IntelliJ.
Vim and Emacs are editors for languages where you do more thinking and less writing.
I'm sorry if that was unclear, but I explicitly prefer IntelliJ Idea over either Vim or Emacs. I'm sure you can write Java in either, but, no, certainly not willing to give up on the auto-stuff.
Is there still a Vim vs Emacs debate? There was, 20 years ago, but Vim made an entree (renaissance?) outside the old school Unix crowd 5 or 10 years ago, and since then, Vim users vastly outnumber Emacs users (in my highly unscientific observations).
I'm certainly one of the Vim clique and I love a little religious infighting between communities. So I'm quite happy that this battle is ongoing. Just in another thread a few days ago HN community discussed about how much org-mode strengthens the interest in Emacs. And I have to say it's really great, if you can accept that everything happens in Emacs.
It doesn't surprise me that much; I personally found it _way_ harder than Vim to get to grips with. Although I would have thought Spacemacs adoption might have pushed it up a little bit, as that was my entry point as a Vimmer.
I personally don't consider vim as an editor, to me it's rather an editing engine, which can be used for Editors/IDEs. You can activate the vim engine in Emacs, VSCode, IntelliJ, etc. I think it's the most powerful text editing engine out there.
VSCode does a pretty good job implementing the vim engine, IMHO. They integrate neovim directly [0]. The plugin has almost 2 million downloads, btw.
I think the future of vim is not "vim the editor", I think it's "vim the engine".
I guess this is also the reason why Vim is so much higher than Emacs in the stackoverflow survey.
Emacs's power largely comes from what and how one would use Elisp. Though Emacs is a great editor in itself. But the true power of Emacs is to use Lisp and its power of Macros to convert Emacs into a AI code writing utility. In other words you write Elisp, and Elisp writes your code. Of course this also extends to the fact that you could eventually use Elisp to automate tasks in the software development workflow.
I think huge disservice has been done to Emacs to use it as an email browsing or as an project management utility. One could use Elisp and do all sorts of curious stuff inside the software development workflow itself.
But if you are using it for editing and for that purpose only, I can absolutely see why vim would be winning. Its just the best lightweight line editor out there.
I guess it depends on how people interpreted the question. For example, Vim is the default editor for git commits on some installations, so maybe some people already counted that in, even though they don't use it for other editing purposes.
vim is for when you want to edit anything in the console. Git commit? Vim. Quickly edit a config file? Vim. SSH'd into a server and need to check something? Vim.
Day to day coding ... VS Code. Used to be Emacs, but I switched.
Oh and Vim is still the only editor I dare use to open a 1GB CSV file with.
>Oh and Vim is still the only editor I dare use to open a 1GB CSV file with.
vim isn’t actually even so good at this. It still needs to read the whole file into memory. Yes, it doesn’t need to syntax-highlight the whole file, but it does still need to keep it in memory.
Other editors work by just loading enough of a big file to keep the illusion up that they have loaded all of it, when they are in fact dynamically loading and unloading parts as the user navigates within the file.
I think sublime works like that, though it still does something that requires load time proportional to the file length.
Many hex editors also do this, probably out of necessity because they are often used to inspect huge binary files (like disk images), though thanks to never having to do line wrapping, they also have it much easier to do so.
Yeah, that's what I don't get from the Emacs crowd
The learning curve is anything but smooth for Emacs. For Vim, it's much easier (note I said VIM, I'm not wasting my time with pre-direction keys typing methods)
Emacs is a tool designed for power users. And I think its a good goal to strive for. Programming should be really about pushing the boundaries of what is possible, especially in case of tooling.
I've seen developers even people with 10+ experience repeat several manual things in case of general software development workflow. Every developer must know how to automate things like this.
In fact everything apart from the thinking part should be automated in most cases.
That's because vim and emacs have different purposes and the choices were not exclusive. I use emacs and even I know enough vim to get around and use it regularly. 25% of people claim to use vim, but for what? Occasional editing of individual files? In contrast, those emacs users almost certainly use emacs for everything.
This exactly, the guy next to me said yes to Vim (and makes sure to talk shit to me literally every single time I open nano) but he literally used Atom all day long and only uses Vim when editing a file stored on a remote server.
I don't care how you feel about nano, I use it less than .0000000000001% of my development time and it serves its purpose just fine.
This is my understanding as well. I “use” vim a few times a year for the past 30 years using only a half dozen commands (xaiwqyp). But I never use emacs other than playing around once a decade or so.
To get a good vi v emacs question you’d want to ask “what is your primary text editing environment?” Or something like that.
I think your point stands, in that there are probably many casual users of Vim who inflated that number. However, I'd like to point out there are many of us, like myself, for whom vim usage is more than "occasional editing of individual files."
Sure, but if you were to count people who have gone "all in" on vim I don't think it would be that much higher than emacs. I've never actually met a serious vim user, but I've seen plenty of emacs use in academia.
I work in an Linux heavy company with open source core product. Quite a few developers use vim as their IDE and all the ops don't really use anything else.
I'm in the system files / remote box camp regarding vim, tho.
Emacs I gave a try for a month, and I still felt like a beginner. There isn't a single core idea that you can master; it feels like it's a never ending series of chords that you have to remember for every plugin and lisp code that you have to write to configure and personalize everything for yourself. And pre-configured distributions like Spacemacs feel even more complex. Evil mode behaves like vim 95% of the time, but 5% leaves you buffled and completely, utterly lost.
Sometime in the future, when I have enough time on my hands, I will build myself an emacs build from scratch, learning every plugin as I go along. Right after I build my own linux distribution from scratch - oh wait, I already did that, and it took less time and mental space than Emacs.