The first time I heard about Vim I didn’t even know what it was. I started to search for that and asking around … and in general people avoid to use that. Some say it is time consuming learning vim, others don’t want to suffer, others say that you can really make your workflow more efficient, but in general, people don’t want to go into it.
Why I Choose Vim
The rumours about the “end” of the Atom made me start thinking that I should start using VS code, but I wanted to try something different. In the company where I work, there's a lot of people using Vim and that made me more curious about learning it.
Two weeks ago, I had the opportunity to have a vim session with a Vim enthusiast, but before starting he asked me if I really, really wanted to do it. He warned me that I will face a reasonable level of frustration … but that didn’t keep me from doing it.
Vim was not a completely strange for me. Before this session, I already knew some basics that I learned by using Vimtutor. To practice what I learned on vim tutor and while using Atom, I installed a vim plugin to start using some commands. The experience was surprisingly nice. Without a dramatic change in my workflow I could try it, but soon I saw a problem with that.
By using a vim plugin, I never got out of my comfort zone, I could always still use the code editor as I used it before. Sometimes I found it confusing to have two ways to use the editor (the atom way or the vim way), and as a matter of laziness, I opted to keep using my normal shortcuts.
But, if I really wanted to jump into vim the better way to do it is use it and configure it.
That was the turning point, and since then I’m forcing myself to use vim exclusively. I know that it will slow down my workflow for a while, but I believe that soon I will know enough to use vim to my advantage.
Pain points and findings
After I made this decision, and because I’m a frontend developer, I started looking for a vim setup that fulfilled my frontend needs, and I found one. ( https://github.com/VictorVoid/vim-frontend/)
At that time, I thought this was awesome and I started using it.
After that vim session, my friend advised me to uninstall that ready setup, and start with the basic plugins. In fact, I had so many plugins installed that I didn’t really know what their functions were.
I only knew that everything was working. I also realize that the fewer plugins I have the better, and some commands are personal. Along with time, I will create my own commands if I feel like it.
It has been almost a month since I started using vim. I’m still struggling and I probably will for awhile, but I see some improvements already. Besides that, I’m improving my skills on the terminal and I started collecting information to create “my” .dotfiles and git-scripts.
Some tips to learn vim
Use post-its to learn the commands, and put them on the bottom of your screen. Remove them once you have these commands in your memory and you don’t need to look at the post-its anymore, Simple!!
In fact, this is useful for other things too, like memorizing git scripts.
I am just starting to learn vim, and this is just my “first few weeks” of learnings.
Although I am always being dissuaded from using vim, I will continue this saga, soon I know it will be worth it.
Thank you for reading.
Check vim tutorials and screencasts
→ I found a cool tutorial from Thoughtbot ( https://www.thoughtbot.com/upcase )
→ Youtube channel with nice screencasts ( https://www.youtube.com/channel/UCXPHFM88IlFn68OmLwtPmZA)
Top comments (2)
What would you say is the benefit of spending the time to learn commands and go through a painful learning process like this instead of using an app like vs code? I've never really considered vim because it struck me as nothing but a need pain in the butt, but would love to hear your sales pitch for it
Thanks! The link to the frontend-vim is useful, will try that one.
For me the really cool thing about Vim is that you can take the keys with you, even if you switch editors. They’re not perfect but there are Vim-Plugins for all major editors and also other apps like browsers.