Creating a Minimal Vim Plugin

Let's start by crafting a minimal Vim plugin called denops-helloworld.

Create a directory named denops-helloworld in your home directory and a Vim script file as follows:

denops-helloworld
└── plugin
     └── denops-helloworld.vim

The content of the plugin/denops-helloworld.vim file is as follows:

if exists('g:loaded_denops_helloworld')
  finish
endif
let g:loaded_denops_helloworld = 1

command! DenopsHello echo 'Hello, Denops!'

The initial four lines (as shown below) serve as a guard, preventing the plugin from being loaded more than once. Using this guard is a common practice to ensure the plugin is loaded only once.

if exists('g:loaded_denops_helloworld')
  finish
endif
let g:loaded_denops_helloworld = 1

The final line (as displayed below) defines a command named DenopsHello that invokes the echo 'Hello, Denops!' command. Thus, when you execute :DenopsHello in Vim, it will display "Hello, Denops!".

command! DenopsHello echo 'Hello, Denops!'

Upon startup, Vim searches and loads files named plugin/*.vim in directories specified in runtimepath. To activate the plugin, add the following line to your Vim configuration file (e.g., ~/.vimrc or ~/.config/nvim/init.vim):

set runtimepath+=~/denops-helloworld

For Neovim's Lua configuration file (e.g., ~/.config/nvim/init.lua), use:

vim.opt.runtimepath:append("~/denops-helloworld")

Restart Vim and execute :DenopsHello to witness the message "Hello, Denops!".