Earlier this year maintainers of Neovim have released version 0.5 which, among other features, allows developers to configure their editor using Lua instead of VimL. In this article I’ll share a few basic rules on how to transition from one configuration to another. This is not a complete guide, but it covers almost 100% of what I needed in order to completely move away from init.vim to init.lua. In the bottom of the article you’re also find a link to my config files so that you can look at them and copy if needed.

Read More

LunarVim is an opinionated, extensible, and fast IDE layer for Neovim >= 0.5.0. LunarVim takes advantage of the latest Neovim features such as Treesitter and Language Server Protocol support.

I’ve been using Vim for about twenty-five years now. I’ve always had a fairly restrained configuration—a few mappings, a few plugins, and not much in the way of exotic features. My .vimrc was just over a hundred lines long, and changed infrequently enough that I didn’t even bother with revision control.

I switched to Neovim about a year ago (building it from source), but until this week, I used it exactly as I did Vim. This worked remarkably well, and I needed to change only one line of my configuration.

I installed Neovim v0.5 when it was released last month, and used it for a few weeks while reading about all the new features in it. Last weekend, I felt an uncharacteristic urge to try them out, and I’m glad I did. Here’s a quick overview of what I learned.

Read More
Aug 28, 2021

You’re now in your garden, sitting down in your favorite chair, contemplating a fabulous table full of the tastiest food. While delighted by your fantastic breakfast, a fresh breeze refresh your warm skin in this hot summer day. You hear the little birds singing in unison. The vivid smell of the young grass and the delicate and subtle aroma of your tea fill your nostrils. Everything is in perfect harmony; all your annoyances, problems, or negative thoughts are far away from this pure state of bliss.

Suddenly, you hear a strong and imposing voice from the sky. The clouds move quickly. You’re flabbergasted: almost falling from your chair, you recognize the logo of the Sacred Vim formed by the cloud!

The voice, which was only a growl, begins to speak:

“My sweet friend! The time has come. You are now ready to begin the final step of your enlightenment. You will receive the Word of Vim!”

Read More

Vim’s netrw file browser is good enough. With a few tweaks there is no need for plugin like NERDtree. For many tasks you may not even need netrw.

Jul 13, 2021

Integration of Lua as a first-class language in the latest release of Neovim provides a good alternative to developers to use a more proper programming language to configure Neovim and develop plugins. Vimscript can get a bit messy to manage when the code base grows. Lua is also relatively easy to learn compared to Emacs Lisp which is used to configure Emacs.

I have been trying to configure Neovim using Lua. There are many developers who had done this, and it seems each one has very different ways of coding the configurations. This is a bit challenging for a beginner to understand.

In this article, I am going to set up a very simple solution that hopefully is easier for beginners to understand, and they can further engineer or custom the solution based on their preferences.

Read More

I have heard about Neovim for a long time. I can say that I really appreciate and adopt the ideas of Neovim – it’s more progressive, embraces open source community, and tries to make Neovim approachable to more developers.

However, for its functionality, I didn’t see much difference between Vim. There are various reasons. Firstly, Neovim is a drop-in Vim, so even the plugins could compat each other without much modification, if it is not implemented with Vim or Neovim specific feature. And Neovim somehow pushes Vim to evolve and release similar improvement. e.g., asynchronous job. For an end-user without much deeper knowledge, the biggest differences might be XDG_PATH based directory and init.vim file name.

Until then, I found Neovim 0.5 and try Neovim nightly because of ThePrimeagen and tjdevries, which impacted me with significant differences and power.

Read More

A symptom of heavy Vim usage is that your brain begins to re-partition old memories for keyboard shortcuts— trashing old brain files for small boosts in finger dexterity.

It was this mass of tangled brains in my own dome that compelled me to purchase a weighty foot-pedal at Goodwill. The model I got is actually a combination of three, springy switches. Sold for the reasonable price of $3.

The problem with learning Vim is not that it’s hard to do—it’s that you have to keep doing it.

This guide will break that cycle, ensuring this is the last time you will learn it. There are dozens of Vim references online, but most of them either go ninja straight away, or start basic and don’t go much deeper.

There will always be plenty more Vim to learn, but you’ll never have to start over again.

This guide will take you through three levels—from:

  1. Understanding Vim’s philosophy, which you’ll never forget

  2. Surpassing your skill in your current editor

  3. Becoming one of those people

In short, we’re going to learn Vim in a way that will stay with you for life.

Let’s get started.

Read More

Practice your vim skills with these fun exercises.

By the end of this journey, you’ll become a vim superstar.

But before we start, just a warning. Learning vim will be painful at first. It will take time. It will be a lot like playing a musical instrument. Don’t expect to be more efficient with vim than with another editor in less than 3 days. In fact it will certainly take 2 weeks instead of 3 days.

Much has been said of “nouns” and “verbs” in Vim’s normal mode command language. Unfortunately, a proper linguistic account has not been forthcoming. In this article I will attempt to give such an account.

This article is about some of the little tricks that I use in Vim. None of them are deep dives, and I encourage you to learn more about whatever’s interesting. They also aren’t connected to each other. But that’s fine. In total, they’re more than enough to help a lot.

Jan 10, 2021

I’ve been writing code in vim for the past several years, and in this post I’d like to share some tips on configuring a development environment. This post contains some notes on configuration that would have helped me when I first started using vim and working on my own config. I hope that as a result of reading this, you will be able to improve your workflow with some new features and make the development process easier and more convenient.

In this article, we will look at common tasks that occur when editing code and try to automate and improve them using vim. Each section contains a brief description of the problem, a proposed solution, overview of alternatives, a full code listing for the configuration, and a screenshot or animated screencast with a demonstration. At the end, additional links to useful plugins and resources will be provided.

Most of the tasks come down to installing and properly configuring one or more plugins. I assume that you are an experienced vim user and already use one of the plugin managers.

All of these tips are applicable in both vim and neovim. Also, despite the title, some of these tips can be applied not only to C++, but also to your favorite language.

Read More
Jan 4, 2021

Sweet cheatsheet for beginners.


A community for vim users.

Created on Oct 17, 2020
By @root