Barbarian Meets Coding
barbarianmeetscoding

WebDev, UX & a Pinch of Fantasy

3 minutes readneovimdraft

Programming Neovim

Neovim is a fork of vim which aims at doing a major refactoring of the codebase with a focus on modern development workflows and making vim more extensible. (Check the Neovim documentation which describes Neovim’s vision.)

The notes below describe how you can program Neovim - the text editor itself - and customize it to your heart’s content from changing basic configuration, to custom key mappings, and how to create your own plugins. For additional notes on neovim see:

Table of Contents

Get started programming Neovim

Although Neovim supports vimscript, the original scripting language used to program Vim, one of the biggest innovations brought forward by the Neovim team is the adoption of Lua as the core scripting language for Neovim. This design decision has started a renaissance of plugin development for Neovim and has brought lots of energy and vibrance into the Neovim community.

A handful of great resources to have in handy before you start your journey programming Neovim are:

The simplest way to get started programming Neovim with lua is to use the :lua ex-command. Type

TODO

Neovim lua apis

  1. Vim api
  2. Nvim api
  3. Lua api

The Nvim API is written in C for use in remote plugins and GUIs. It lives under the vim.api namespace. May of its functions start with nvim as in nvim_create_namespace and will often appear in the Neovim documentation without the namespace. So make sure to remember to call any nvim_ function including the namespace vim.api.nvim_create_namespace. For more information refer to :h api.

Setting up a great Neovim development environment

TODO

Options

TODO

Keymaps

TODO

Additional resources


Jaime González García

Written by Jaime González García , dad, husband, software engineer, ux designer, amateur pixel artist, tinkerer and master of the arcane arts. You can also find him on Twitter jabbering about random stuff.Jaime González García