Today there was a text about how people switched from Sublime to VIM . In the comments, as it usually happens, there were messages in the spirit of "Why should I waste time on Vim, if there is an IDE, where does everything work?" (people even write articles on these topics). I wanted to make my five kopecks, but the volume of the written text smoothly translated the text from the “comment” category into a small article.
In general, everything below is taste, of course. Do you like your IDE (or your current tool), yes, and please. Use for current tasks what you own best, this is an axiom of effective work. But if you suddenly have some time to improve your efficiency as a whole, then I will try to interest you with Vim, comparing it with some generalized IDE.

What for?
In my opinion, the disadvantages of any IDE in comparison with VIM (or, on the contrary, the advantages of VIM) are the following:
- IDE is much heavier than VIM (even with plugins); from here an obvious minus that for IDE - rather powerful workstation is necessary.
- An IDE typically supports a small number of languages ​​/ platforms. Vim uniformly supports everything. In Vim, I write in Ruby / Rails , Python (or so ), C, OpenCL (+ PyOpenCL ), CUDA (+ PyCUDA ), bash, Go , XML, YAML, HTML, Markdown, Textile, CSS, .ini, Sage , Magma , GAP (the last 3 are computer algebra systems), LaTex , as well as editing the specific configs of some programs (such as X, mutt, etc.) and editing mail. Configs and mail is a specific example, but as far as programming languages ​​and markup are concerned, you will need to master several IDEs with their own features, shortcuts, etc. just because the IDE usually has a narrow circle of supported technologies. Vim (like Emacs) can do almost everything, and you don’t need to get used to the tool again. In addition, the creator of the plug-in should focus only on how well to support specific things for the PL, and Vim already knows everything else. As a result, when moving from one technology to another (conditionally, today you write in Ruby, tomorrow in Python, and then back), you will not lose the usual basic things, as it could be when changing the IDE, because stay in vim.
- Vim, as a result of the previous one, supports things that no one else supports: try to find the IDE for Magma . And for Vim everything is there . This is explained by the fact that for rare things to create an IDE is unreasonable, and to write a basic plugin for Vim is not so difficult.
- Vim can work in console only mode. In other words, with Vim, your computer can be a thin client . Specifically, in my case there is a 10-year-old Full HD laptop IBM'ovsky. It is clear that it is already not enough for its normal use as a workstation for programming: tests will last forever, and the mentioned IDEs will significantly slow down. At the same time, there is ssh access to a powerful server, on which development is being conducted as a result: tests run, an editor works, and so on. In addition, a bunch of vim + tmux + ssh is a constantly open working session. He started working on one machine (for example, at work), logged off without closing the editor, etc., continued from home from a laptop - extremely convenient. And in my case, so also for some tasks the main computing equipment (several GPUs) is physically inserted into the server, i.e. besides the convenience described above, being a thin client is also a necessity. Try to do all this in your IDE!
- The ideology of Vim itself is a very powerful thing in comparison with the classical IDE. There is a book Practical Vim: Edit Text at the Speed ​​of Thought , its title ("edit text at the speed of thinking") perfectly reflects the result that you get at the output. Unfortunately, this is difficult to convince a person who has not tried (although some try ). The bottom line is that this ideology is so contagious that I want to transfer it from the editor to all areas of communication with the computer: browser , pdf-viewer , email client , music player , file manager and much more .
- With Vim, you don’t need a mouse, if of course you want to (if you don’t, then Vim is perfectly integrated with the mouse ). It hurts me to watch people suffer with touchpads or carry mice with them, placing them on different surfaces when working with a laptop.
- Vim is incredibly expandable, any your Wishlist is either implemented in any way or it can be implemented in Vim.
- Your configuration for VIM is generally easily transferred from machine to machine. Will it be so easy with your IDE?
If not enough, here's some more literature on the topic: one , two , three .
And yes, the Vim community is obsessed with efficiency, new cool tools are constantly appearing, aimed at accelerating, automating and facilitating this or that. And if your soul lays down to this, then work in VIM will give you a lot of pleasure.
How?
- . , , , . vimtutor. VIM ( , ) . , , . vimrc set nocompatible
( VI) sensible ( vimrc nocompatible
), neovim ( VIM VIM -).
. , :
- , VIM ( ).
- , . vim-plug.
- (
:help <plugin-name>
). !
. , 2 , , , , . 33 , , 33 .
P.S. : , VIM IDE . , , VIM IDE, . , "?".