nvim-libmodal
nvim-libmodal copied to clipboard
Create new "modes" for Neovim!
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-libmodalis 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-libmodaldoes 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.
- Lua does not support passing
call libmodal#Prompt('FOO', funcref('bar'), baz)in Vimscript.- Lua does not support passing
funcrefs from Vimscript. Try using the Lua interface instead.
- Lua does not support passing