Click here to start a Vim quiz. Click here to get a random question.
I've always been a fan of IDEs and have used quite a few: Delphi 2..7 as a hobbyist (nostalgia), Visual Studio 2003..2019 while working as a .NET developer and a bit of IntelliJ IDEA or Eclipse when doing Java...
Having a cohesive set of tools from feature-rich code editor to integrated debugger gives a great productivity boost. The only thing that bothered me was that the tools I was using were not fully keyboard-oriented...
So when I switched to Visual Studio Code for React projects (which sits somewhere between plain code editor and fully-fledged IDE), I thought it might be a good opportunity to use the mouse less by relying more on command line and to try Vim's modal way of editing with VSCodeVim plugin. People have varying opinions about this plugin but I think it's a great way to start taking advantage of the Normal mode while keeping all the amenities that VS Code provides (for example its support for React+TypeScript projects is hard to match).
After a while, I stated to feel the limits of emulator and decided to use Vim directly, hoping to stay productive thanks to ALE and it's support for tsserver and rust-analyzer. I've used vim-plug to easily manage a bunch of plugins (fzf.vim, lightline.vim, lightline-bufferline, vim-code-dark, vifm.vim, vim-commentary, vim-surround, vim-unimpaired...) and configured my .vimrc with mappings using spacebar as leader key (love it!)... I still notice some hiccups, like Vim getting confused what sort of comments to use in TSX code blocks, but I can honestly say that I'm a happy Vim user (especially combined with tmux and Nushell) and I want to use it more and get better at it.
I'm on Vim 9, but a lot of people enjoy Neovim, so you might give it a try. You can even go a step further and use something like LunarVim to get tones of features preconfigured for a more IDE-like experience...
SITE FOR LEARNING
I think the best way to learn something is to try to teach it, so I've built a questions and answers site that should help Vim users discover its useful features. The site has a random questions mode and a quiz mode where you can choose interesting topics. Perhaps in the future I will add some keyboard drills too. At the time of this writing (2022-10-03) the site has 128 questions so it covers just fraction of what Vim could do but I plan to add a couple of questions every week.
Every single question has an explanation, and it's worth checking it as even the wrong answers might inform you about something you didn't know about Vim. I also often add a tip about alternative usage or hint if there are some important details in Vim's extensive help system. I intend to keep the questions unambiguous so the correct answer should not be a matter of personal preference.
The site is a learning resource, I have made no attempt to hide the correct answer from browser so you should get an instant feedback. Yes, you can cheat just by opening devtools but what's the point? There are no prizes :)
Please tell me if you see any inaccuracy in a question or explanation (the question ID becomes visible after answering).
The site should adopt to various screen sizes (from small smartphone to desktop) and is expected to work on modern browsers (I am checking in Chrome, Firefox and Edge on desktop and in Chrome on mobile)... Let me know if you see a bug.
I use this project as a playground to test some things that might be useful for me at work or that are just interesting to play with. Shout out to the authors of these open source projects:
Oh, and if you find the site useful, please share a link to it somewhere on the Internet.