Five Awesome Vim Plugins I Wish I Had Known— A Guide To Start Your Journey

Sidequest to the top of Vim

Some years ago, I switched jobs and lended with a mentor who only swore by Dvorak and vim. Although I was not convinced I had the mental space to learn yet another keyboard map, I had heard of vim in uni and decided to give it a go. As for any good programmer, I had stumbled upon vim when working on servers and got myself stuck in a buffer because I didn't know that in order to quit the thing, I had to use :q!...I think it has happened to most of us and instead of admitting myself beaten, I had decided that one day, I would use this editor and never be fooled again.

At first, I added NeoVim to my Visual Studio Code and only used some key bindings for navigating my document. I looked up some tutorials online and ended up playing some VimVendtures which helped me with ewbhjkl. After that, I learnt about AIai and ciw and did not think I would ever need anything else... But oh boy was I wrong!

I would agree that for vim to be worth it in your workflow, you need to at least be as efficient in navigating a document as you were with the Cmd, Fn and arrow keys. So here we are: I threw around some keys and would definitely recommend looking up those online, but this article is not about navigation with vim: it is about some tools I wished I knew when I first started with vim.

vim can be used as a very powerful IDE, it is portable and you can save your settings so that your environment can be recreated in a whim on another computer. As I said, I plugged vim into my Visual Studio Code at first and used their Marketplace to add plugins and whatnot... In the end, I decided to go full time and never regretted my decision.

The awesome thing I didn’t know five years ago was that you could use tools to upgrade your vim experience and stop using IntelliJ altogether...Without further ado, here's a short list of them!

~ Plugin ‘unblevable/quick-scope’

Jumping around to those blue and purple letters with quick-scope!

What is quick-scope? Well as you can see from the gif, it makes your buffer a multicolored happy place. The keen-eyed might have understood how it does it: it highlights the first occurrence of a letter so that you can jump around (or quick-scope) words in a line. Instead of jumping from word to word using bwe, you find ( f) the highlighted letter and jump straight there. Not only does navigating a line become a breeze, you also look very snazzy when people watch you code with all those beautiful colors popping around.

~ Plugin ‘ThePrimeagen/harpoon’

Harpooning your terminal!

To be honest, ThePrimagen is probably the guy I looked up to the most back when I was starting withvim. He streams himself coding, uses a keyboard-cam to flex his rapidity and is very instructional. Obviously, he has coded some vim plugins and this one I quite enjoy.

At first, when I switched to vim, I missed having the everlasting terminal at the bottom of my screen...And this harpoon only makes it better by giving you four of them! I mapped the plugin to be ,t[qwer] and it lets me jump to a terminal and let it run in the background whilst I code. It can be very useful for testing, running your application et cetera. You can always use :! to run commands or :terminal, but this one comes with the added benefit that background tasks can write to the buffer, so after you've run something, you can come back to it and / the output which is an awesome feat!

~ Plugin ‘tpope/vim-surround’

Oops, put some { } in there

tpope has made a lot of clojure plugins and this is how I bumped into his work. This vim-surround tool lets you... quite simply...surround something! If you need to add parentheses around some argument, highlight some word in markdown or comment something...This plugin comes to the rescue! I highly recommend you give it a try, it has helped me numerous times in the past.

~ Plugin ‘dbeniamine/cheat.sh-vim’

Thanks for the tip 😌

Who always remembers every last detail a language has to offer? If you do, bravo. But if you don’t: here’s an awesome tool which does it for you. Simply hover over some word, press K and voilà, it shows you in a new pane how to use that thing in particular.

It is very useful when you read some code: if you don’t know that keyword does, just K. It supports a lot of languages and tools and can even be navigated without coming from a word and from there, you can search for some functionality and then use it for your purpose...Give it a try!

As some users pointed out on Reddit, K always works in vim . It is true, I should have been more clear: what this plugins does is enhance the docs by giving you direct access to cheat.sh in your buffers and lets your search info there directly next to your code, which is awesome ✨

~ Plugin ‘vimwiki/vimwiki’

Wikiwikiwikiwikiwiki

The latter was a cheatsheet…This one is a wiki! I mapped mine to ,ww and with that, I jump straight to a personal wiki. From there, you can link pages, add data, take notes... It has proven to be very useful for taking notes on mappings I was learning in vim and some todo I had given myself for my current projects.

Farewell, traveller!

There are a lot more tools which I use in my workflow and if you are interested in looking through my .vimrc or chatting with me for tips and cues, don’t be shy and hit me up any time ! Also, if you would be interested in hearing more of my learnings I gathered from my short adventure with vim, let me know and I might be interested in sharing those in a future article. Have a good one ❤️

If you wanna help and make a difference, head on over to ko-fi!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store