Advantages of vim

Customization

The advantage of using vim over a simple text editor like notepad or gedit is that it allows the user to customize it's almost everything about itself. If you ever find yourself doing some kind of action over and over again, vim has a multitude of features that will help you do this action faster and easier.

Most of the popular IDEs such as MS Visual Studio or IntelliJ IDEA provide their users with useful shortcuts and even some amount of customization, but they are usually related to specific actions that are common in a particular context, whereas vim allows one to customize for different situations, without conflicting each other. It might be comfortable to develop c++ programs in Visual Studio and Java in IntelliJ, but you wouldn't write python code in there, and for that there is another IDE of course, but in vim you can pretty much edit whatever language you want without losing the convenience.

There are of course other customizable editors, and I'm not the one to say that vim is the best for everybody. This is a question of personal preference. I don't think someone will argue that emacs allows the level of customization inferior to that of vim's (and some would say otherwise), but you really have to try it out for yourself, to find what suits you best.

Some people say, they don't want to spend months learning how to use an editor, just to be able to work in it. But those who do, mostly agree, that it was worth it. For me personally it was never a problem, learning new stuff about vim and getting more efficient with it is just fun. And there is a lot to learn.

Lightweight

Vim is (like GNU Nano or GNU emacs) lightweight. It does not need any kind of graphical interface (like x11, wayland &co).

This makes vim to a system maintainers best friend. You can use it using ssh and, this is really important, on really small devices that do not have some kind of graphical interface.

Programming on and maintaining remote servers got more and more important during the last years and using vim (or emacs) is the best way to do so.

Unlike many IDEs vim brings the capability to work with many kinds of files out of the box and writing your own commands and syntax hl is easy.

And last but not least, a vim user should be able to use vi, that is preinstalled on most UNIX systems.