Neovim

I have been using Neovim for quite a while. I've created workflows which are suited to my needs. These are some learnings from using Neovim for sometime.

Neovim

Defaults are powerful. Before using any type of plugin learning the defaults without any plugins is important as not every time personal configs are available on the system and knowing how to navigate around the editor with the defaults is very important.

Defaults

Neovim without plugins is also usable. The default file manager Netrw is also usable. Although, for many advanced and convenient features and workflow plugins come in handy. Another handy editor commands are opening a split pane in horizontal and vertical split view with :vsp and :sp for horizontal and vertical split.

Convenient key motions

In addition to the usual hjkl motion other motions are also present. Moving in Neovim with style to quickly move in the buffer and edit changes.

g key motions

This motion is so awesome. Suppose there is big text on the same line and I want to go to the beginning of the visual line, I could go like g0. This goes to beginning of the visual line. SO COOL! Another example, is when I want to go to the end of the visual line. I can use s$ to go to the end of the visual line.

Another example of this is when moving between lines. I can use gj to go down exactly below the cursor. Generally, using j and k moves very differently, but this fixes that.

Another great example is using gq to format a big line into sentences in newlines. This is very helpful in files like markdown and any other text based file types.

ftplugin directory

There’s a builtin spell check which can check grammar in English and other languages which I have not tested. Spellcheck for all types of files doesn’t make sense. Spellcheck can used in normal files like a text file, markdown which are more verbose in grammar.

For only enabling it in markdown files, create a file named markdown.lua in after/ftplugin with

vim.opt_local.spell = true
vim.opt_local.spelllang = { "en_us" }

content in to it. This file will only enable spellcheck in markdown type file. The opt_local is used to make the settings applicable only to the current markdown filetype.

There are also keymaps which can be used to correct the wrong spellings with

  1. ]s to jump forward
  2. [s to jump backward
  3. z= suggests correct spellings
  4. zg to mark the word as good
  5. zw to mark the word as bad

To target plain text files one can use text.lua file which targets plain text files. I have setup wrap, linebreak and spell check only for plain text files.

TL;DR

I’ve learnt a lot from TJ DeVries from his Advent of Neovim YouTube videos. I have also learnt a lot from ThePrimeagen’s Neovim YouTube videos which are available on YT for free. There is also the official documentation which also has a lot info on how to use Neovim.


Published on and updated on in Guides tagged with linux text editor guides


© 2026 ryukamish