![Cover image for (Neo)Vim Makes You a 10x DEV, and I'm not Kidding](https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F22x0zy2sgujxl0zmunm6.png)
WOAH, that's a bold statement 🤨
Wait, I'll explain...
So you've clicked on the post, which likely means you are from other code editor ...
For further actions, you may consider blocking this person and/or reporting abuse
As you said, it's more about a mindset of efficiency (at least I feel the same). Great write up Shrijal. 👏
Yes, I feel the same. It could be VIM where you are efficient, or it could be any other IDE like JetBrains or VS Code. But at least you should give VIM a try.
I am thinking of learning VIM myself. I plan to start by having the VIM plugin installed in VS Code.
Starting out with the VIM plugin installed is a great way to begin.
Maybe, but I don't agree.
As far as I listened from others' experiences, the vim extension only gives a crap experience.
I know jumping straight into Vim can feel notoriously dangerous but hey, trust me! This is the best possible way.
Let me explain, why, I have, such a strong opinion.
To truly learn Vim, you need to commit to it fully, outside the familiar environment of VS Code.
Now the obvious obstacle ahead is your current ongoing work. You have a job. You are working on something. You can't just directly jump on a completely alien environment and get your job done, in time, being productive, without having knowledge and prior experience of that environment. And that's okay.
Take your time. Try vimming in a different workspace. Mayybe something like a hobby project? Which you have plenty of time to spend on? Why not share the time on coding while learning vim by writing code on vim?
Or maybe you would learn to be proficient in basics (of modal editing) first.
The thing is for getting used to with the basics of vim(just the basic writing, editing, saving and exiting), imo it's actually better if you start using it as a notepad replacement if you are currently running Windows.
Why? Because it is a much simpler, easy approach. It's like breaking your big problem into smaller parts, a relatively more doable way. You start using vim as your secondary note taking app. Then slowly the keybinds, the commands and the whole workflow makes a permanent place in your muscle memory. That ubiquitous text editor, will eventually go ranks higher becoming your go to quick note tool, and then someday your universal text editor.
Learning vim is a journey. It takes time. It also needs a great starting in the proper way if you don't want getting lost somewhere in a jungle of conflicting hybrid environment, messed up.
That being said, Vim or if more accurately said
Neovim
is inherently universal. Neovim is faster than vim. It takes less startup time to open than vim and you can use it for basic one line config file edits to coding a large software project, efficiently. It's so unique, it needs to be done in it's own way.And for getting the modern features like autocomplete, copilots, formatters, there are lots of plugins available in the ecosystem. The most beginner friendly way will be adopting a preconfigured distribution like LazyVim, Kickstart.nvim etc. to get started without initial config build up overhead.
This how you slowly & ultimately become one of them. The OG martian vimmers!
This is what I understand. What do you think?
@ddebajyati You hold a point. The thing is, if you plan on using the VIM plugin in any GUI IDE, just use it until you’re comfortable with the basic VIM motions, I'd say. Most folks never try VIM because of their fear of the terminal, TBH. At least with the plugin, you can experience what surface-level VIM is like.
If I were to recommend someone to start with VIM, I’d suggest going with raw (Neo)Vim for sure.
Yeah kinda true. People are scared of the terminal.😂
For me it was really exciting and interesting because it felt like I am some cool hacker! 😂
Thank you, @anmolbaranwal, buddy. ✌️ Yeah, it's the mindset that makes the difference. For me, with VIM, everything is at my fingertips, and there is no friction in the workflow.
I can 100% agree on this. I did not go for this book, I used the nvim default help pages.
Yeah, I fully agree with this. I feel that when I was starting out, I did look at the help pages, but not thoroughly.
Although I do agree Vim is highly efficient, this isn't exactly true either:
From my own observations as a Vi user since 1994 and someone who has sat next to hardcore Vim & Emacs coders since 2000, veteran VS Coders rarely touch the mouse, and I hate to admit this but they are just as productive as Vim coders, if not more so with the help of Copilot. By far, the #1 prerequisite to being a 10x dev is your proficiency at the language you're coding in (and of course your IQ), not the tool you're using :-).
For sure, being super efficient in anything will take you far, and it doesn’t have to be Vim. That said, for most folks, plain VS Code might not be the best option, and some may not even know that something like VIM exists to give it a shot at least. But at the end of the day, it’s all about what works best for you.
I completely agree with this. Goes without saying.
Nice read! For eager beavers 😊 try "LazyVim". It'll install all the IDE features you need for most languages.
I still use VScode, but Neovim is also very productive especially since I am big on Linux and the terminal and love to stay on my keyboard.
Neovim + nohup + tmux is just super productive! Also starship.rs/ and ZSH makes the terminal so much nicer to work in.
Thank you, @kwnaidoo ✌️.
Yeah, starting with a distro can be a good option and is recommended by most of the fellows in the community as well.
Neovim + tmux is pure gold 🤍
Feels silly that I didn't know about nohup. Thanks for sharing this. Starship is super awesome, but recently I’ve started opting for the RobbyRussell prompt instead, as its Git features really felt like they were slowing down the prompt load for some reason. 🤷♂️
Great one sathi. 😍🥰
Thank you, Aayush ✌️
Vim motions are also great for notes taking. I even build extension (LSP) for this github.com/iwe-org/iwe
Good one @gimalay, ✌️ I'll take a look at your plugin. Note-taking is definitely superior in Neovim. For now, I'm using Obsidian, but I plan to start editing Markdown in Neovim soon.
If you're interested, you can view my dotfiles here.
github.com/shricodev/dotfiles
Neovim all the way!
Hell yeah! 🙌
So for you it started with typecraft. In my case, it all began with Elliott Means (Dreamsofcode).
Man, ngl that aesthetically pleasing Neovim rice made me get out of my comfort zone from vscode to trying something new, exciting, FANTASTIC!
Learning vim has rewarded me in many different ways. The most important one was actually being able to get what I want by digging into the Documentation rather than being stuck in the never ending vicious loop hell of prompting ChatGPT while GPT is giving really awful results.
I won't say "I don't use AI anymore". That would be an unbelievable lie.
But, what I mean is that - when solutions don't already exist, you get nothing valuable from Stackoverflow or AI Chats, then only way out is to READ docs. Learning Vim, Vimscript, and configuring Neovim has made me capable and get used to understand and get what I need from the Docs when building some project(which used to be very difficult for me at some point of time, I could never stands libraries without watching a tutorial from YT or prompting CHAT-GPT), without getting intimidated or scared.
Well, I would like to know where did you get the name 'vim' for the very first time. Was it typecraft or something else?
so what about debugging? VS code makes i a breeze to debug a nodejs program. can you do it in vim with the same ease/tools the vscode debugger provides? I have tried a bit of REPL to debug in terminal but it felt alien and clunky
After reading this, I might have to try Vim sometime... I'm mostly a Python dev, though, so not sure how much more efficient this would be than PyCharm.
Give it a shot! I'm not familiar with PyCharm, but you should get decent experience using Python in Neovim if the LSP and everything are set up properly.