Simple Neovim Function
function Todo() print("Hello, Neovim!") end
- Source the file using
%so
- Run the command
:lua Todo()
Trigger
vim.api.nvim_create_user_command("Todo", Todo, {})
- Source the file and run:Todo
vim.api.nvim_create_auto_command("CursorHold", { callback = Todo })
- Source the file and hold the cursor and it will call the functionvim.keymap.set("n", "<leader>u", Todo
- Source the file and pressspace + u
on keyboard to trigger the function.
Creating Plugin
- make an empty lua directory (
mkdir lua
) - Add a file with your plugin name (
touch lua/<plugin-name>.lua
) - while opening the neovim, set the runtimepath
nvim --cmd "set rtp+=.
- require the plugin name (
require('NeovimConf').todo()
) - Important Note
Module
-- lua/NeovimConf.lua
local M = {}
M.todo = function() print("Hello, Neovim!") end
return M
nvim --cmd "set rtp+=.
require('NeovimConf').todo()
Important Note
require caches the result. So, if we change the contents, it does not get reflected. So, we need to write a small script using
nvim_create_user_command
as below
vim.api.nvim_create_user_command("Test", function()
package.loaded.<plugin-name> = nil
require("<plugin-name>").todo()
end, {}
we can type the command :Test, so that we make the cached result nil
and require again.