Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Create A Hello World Neovim Plugin In Lua

This is a basic setup I used for creating a Neovim plugin in Lua. After adding the files and restarting Neovim, you can run `:HelloWorld` which will print "Hello, Lua Plugin" on the command line.

~/.config/nvim/plugin/hello_world.vim

if exists('g:loaded_hello_world') | finish | endif

let s:save_cpo = &cpo
set cpo&vim

command! HelloWorld lua require'hello_world'.hello_world()

let &cpo = s:save_cpo
unlet s:save_cpo

let g:loaded_hello_world = 1

~/.config/nvim/lua/hello_world.lua

local function hello_world()
    print("Hello, Lua Plugin")
end

return {
    hello_world = hello_world
}