nvim-libmodal/README.md
2022-04-24 11:34:00 -04:00

2.8 KiB

nvim-libmodal

This is a rewrite of vim-libmodal using Neovim's Lua API. This project aims to be cross-compatable with vim-libmodal— with a few notable exceptions (see the FAQ).

Requirements

  • Neovim 0.7+.
  • vim-libmodal is not installed.

Installation

You can use packer.nvim (or any package manager) to install this plugin. The below example is for packer.nvim:

local install_path = vim.fn.stdpath('data')..'/site/pack/packer/opt/packer.nvim'

if not vim.loop.fs_stat(vim.fn.glob(install_path)) then
	os.execute('git clone https://github.com/wbthomason/packer.nvim '..install_path)
end

vim.api.nvim_command 'packadd packer.nvim'

return require('packer').startup {function(use)
	use {'wbthomason/packer.nvim', opt=true}
	use 'Iron-E/nvim-libmodal'
	-- use {'Username/mode-plugin', wants='nvim-libmodal'}
end}

Usage

The following plugins have been constructed using nvim-libmodal:

The following samples have been constructed using nvim-libmodal:

See docs for more information.

Statusline

You can add libmodal modes to your status line by using feline.nvim or galaxyline.nvim or . You can find my configuration for feline.nvim here and galaxyline.nvim here— both of which leverage nvim-libmodal's in the statusbar.

FAQ

nvim-libmodal vs. vim-libmodal

The following is a list of expressions that work in nvim-libmodal but not vim-libmodal:

  • require 'libmodal' in Lua.
    • vim-libmodal does not support interacting with it through Lua, you must use the Vimscript interface.

The following is a list of expressions that work in vim-libmodal but not nvim-libmodal:

  • call libmodal#Enter('FOO', funcref('bar'), baz) in Vimscript.
    • Lua does not support passing funcrefs from Vimscript. Try using the Lua interface instead.
  • call libmodal#Prompt('FOO', funcref('bar'), baz) in Vimscript.
    • Lua does not support passing funcrefs from Vimscript. Try using the Lua interface instead.