I do not remember when and under what circumstances, but somehow I discovered Git a long time ago. At first, I didn’t quite understand, of course, its advantages over other version control systems, but already rather tired of TFS, which at that time we used in the company, decided to try it.
Git very quickly won my love and since then I can’t even imagine my work without him.
Once, playing and trying different commands, I accidentally started the editor mode, and Git, as it turned out, used Vim by default, which I hadn’t seen before. Well, as usual, the first encounter with this editor? That's right - with bewilderment and rebooting the terminal. Trite - I could not get out of the editor and honestly, I even thought that the editor was stupidly buggy. I even remember, I was somehow surprised - how damn it happened that such clever dudes who created such a powerful thing as Git could choose such an archaic, dull, incomprehensible and ugly (as I initially thought) editor?
')
But then I was curious, I began to dig. I admit honestly, the way to overcome my own laziness and established habits was not easy and very long. But I do not regret the time spent and the nerves. Now I use (and used) Vim-mode almost wherever possible - WebStorm / RubyMine / PyCharm, Sublime Text, Visual Studio, Atom. My Vim-mode is activated in the Terminal and even in the Browser.
Yes, yes, as it turned out, knowing the command Vims can very effectively switch between tabs, follow links, scroll down and up, search for text on a page, and much, much more.
Under Chrome, there are as many as three extensions - the most popular
Vimium , the less popular and a little tired
Vrome and the booming, young
cVim . I started from the first, then switched to Vrome. The fact is that Vrome offers an awesome feature - editing text in a third-party editor. That is, you go, for example, on StackOverflow, to ask a question, you go to the text field area and ... pressing the key combination opens Vim - you can type in the text using all its power. When you save the text automatically gets back to the browser. Fantasy. Unfortunately, Vimium has no such support yet. Although the rest is largely superior to Vrome, I recently switched to Vimium again and, as it turned out, many bugs were fixed, functionality was added, etc. Although without the support of an external editor, of course, you have to suffer. cVim - despite its youth, a powerful and fast-paced project, I really want to hope that the author and the participants will not abandon the project, as happened with Vrome.
I don’t use Firefox very often, but as far as I know,
Vimperator is driving there .
Vim is an awesome thing, the only drawback of Vim is getting used once you get used to it all your life. For example, I now do not have enough Vim mode on Skype, Word, Slack, etc. Interestingly, many websites implement basic vim navigation - gmail, trello, github, etc.
If you have ever tried Vim and were able to force yourself to get used to it, you should definitely try again. If you want to comprehend Zen Vim, have patience. Start and go
vimtutor , play in
Vim Adventures . Try not to be nervous because all the time you have to remember / look for the desired key combination. Print the
cheat sheet . At first it will seem to you that this whole game is not worth the candle and Vim does not make you more productive in any way, and even with the exact opposite. Take my word for it, it will take months to experience the beauty of Vim. After some time, you will not even think about it - your fingers will run on the keyboard themselves, and for the uninitiated observer your actions will look like real magic. Someone even joked somehow - they say that any more or less significant Vim-ov combination will pass for Fatality in Mortal Kombat.
Well, intrigued? And now let's talk about the real editor (joke).
Since I discovered Vim for the first time, a lot of time has passed, but gradually the disadvantages of Vim began to open to me. The fact is that Vim is an editor. It’s impossible to make a full-fledged IDE out of it, but it’s damn hard. And then, we are not only editing the text, we need full search and replace, intellisense, file manager, built-in support for VCS, preferably a terminal window, multilingual, and so on and so forth. Yes, Vim has a lot of plugins, they can be connected, they can be configured indefinitely and so on, but in essence, Vim will remain an editor. In this regard, Sublime is not even worse. I love JetBrains IDE. Webstorm, for example, is simply a cool thing. What is wrong? And the fact that in this and the other support for Vim-mode is not without complaints.
So, I want to have an environment with support for Vim mode, but at the same time:
- with more convenient built-in configuration language;
- with a convenient plugin manager and a sufficient variety of them;
- multi-language support (input and localizations);
- with convenient command navigation (ala Sublime).
And what do we have in the end? And we have Emacs. Yes, yes, do not be surprised.
I was pushed into studying Emacs by idle curiosity, and also by a colleague who had used Vim for up to ten years before Emacs, and an
acquaintance from whom I dragged the
configuration for Vim to myself (and later
for Emacs ).
At first, the evil Emacs didn’t let me in on me. I was still joking at work, saying that Emacs has such a huge ego that it does not fit into my computer. To try, I downloaded naked Emacs, launched. I looked. Did not like. Then I tried to download the so-called Starter Kit - and it did not like it. Well, I can not without Vim mode, even burst. And that's when I discovered Evil-mode. And then I realized how all the same was wrong in his laziness and I had to try Emacs before.
I just switched to Emacs and, perhaps, I will not give any advice. I can only say that I very quickly realized how flexible and customizable it is. Emacs is not an editor, it’s rather a constructor from which you can assemble an IDE, a word processor, an organizer for your color and taste. For example: I thought, why don’t my Evernote notes be driven directly into Emacs? Found a plugin, installed, configured - use. Great. The second example: I often have to write in English and use the thesaurus. It turned out that there were already several plug-ins for it - I had to choose. The one I chose displays a window with a list of word-options. But I need complete automation; it is necessary that when you open the window with options, the cursor itself jumped into that window. And then, after I choose the appropriate option, I could easily replace the word I was looking for and close the window as unnecessary. It turned out that such tricks are very easy to program. And now I do not have to go to the Internet for a thesaurus, and the search and selection of options takes literally seconds.
In conclusion, I want to say that, of course, one can argue endlessly which editor is better. But I still think that a real developer should master both. What I wish for you. And only having mastered them you will understand. Why do modern programmers need editors almost forty years ago?