Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Create new "modes" for Neovim!

License

NotificationsYou must be signed in to change notification settings

Iron-E/nvim-libmodal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a rewrite ofvim-libmodal using Neovim's Lua API. This project aims to be cross-compatable withvim-libmodal— with a few notable exceptions (see theFAQ).

Installation

Either usepackadd or any package manager. I recommend usinglazy.nvim.

Requirements

  • Neovim 0.7+.
  • vim-libmodal isnot installed.

Examples

lazy.nvim

{'Iron-E/nvim-libmodal',lazy=true,-- don't load until necessaryversion='^3.0',-- OPTIONAL: unsubscribe from breaking changes},

packer.nvim

returnrequire('packer').startup {function(use)use'Iron-E/nvim-libmodal'end}

Usage

The following plugins have been constructed usingnvim-libmodal:

The following samples have been constructed usingnvim-libmodal:

Seedocs for more information.

Statusline

You can addlibmodal modes to your status line. Here are a few examples of how to integrate with existing plugins.

feline.nvim

See my configuration forfeline.nvimhere

galaxyline.nvim

See my configuration forgalaxyline.nvimhere.

heirline.nvim

An example config
-- Defined in https://github.com/Iron-E/nvim-highlitelocalBLACK='#202020'localBLUE='#7766ff'localCYAN='#33dbc3'localGRAY_DARK='#353535'localGRAY_LIGHT='#c0c0c0'localGREEN='#22ff22'localGREEN_LIGHT='#99ff99'localICE='#95c5ff'localORANGE='#ff8900'localORANGE_LIGHT='#f0af00'localPINK='#ffa6ff'localPINK_LIGHT='#ffb7b7'localPURPLE='#cf55f0'localPURPLE_LIGHT='#af60af'localRED='#ee4a59'localRED_DARK='#a80000'localRED_LIGHT='#ff4090'localTAN='#f4c069'localTEAL='#60afff'localTURQOISE='#2bff99'localYELLOW='#f0df33' require('heirline').setup({statusline={  {hl=function(self)vim.api.nvim_set_hl(0,self.group, {bold=true,fg=self.color})returnself.groupend,init=function(self)ifvim.g.libmodalActiveModeNamethenself.name=vim.g.libmodalActiveModeNameself.color=self.modes[self.name]elselocalcurrent_mode=self.modes[vim.api.nvim_get_mode().modeself.name=current_mode[1]self.color=current_mode[2]end ifnotself.oncethenvim.api.nvim_create_autocmd('ModeChanged', {command='redrawstatus',pattern='*:*o'})self.once=trueendend,provider=function(self)return''..self.name..''end,static=    {-- {{{group='HeirlineViMode',modes=      {        ['c']= {'COMMAND-LINE',RED},        ['ce']= {'NORMAL EX',RED_DARK},        ['cv']= {'EX',RED_LIGHT},        ['i']= {'INSERT',GREEN},        ['ic']= {'INS-COMPLETE',GREEN_LIGHT},        ['n']= {'NORMAL',PURPLE_LIGHT},        ['no']= {'OPERATOR-PENDING',PURPLE},        ['r']= {'HIT-ENTER',CYAN},        ['r?']= {':CONFIRM',CYAN},        ['rm']= {'--MORE',ICE},        ['R']= {'REPLACE',PINK},        ['Rv']= {'VIRTUAL',PINK_LIGHT},        ['s']= {'SELECT',TURQOISE},        ['S']= {'SELECT',TURQOISE},        ['']= {'SELECT',TURQOISE},        ['t']= {'TERMINAL',ORANGE},        ['v']= {'VISUAL',BLUE},        ['V']= {'VISUAL LINE',BLUE},        ['']= {'VISUAL BLOCK',BLUE},        ['!']= {'SHELL',YELLOW}, -- libmodal        ['BUFFERS']=TEAL,        ['TABLES']=ORANGE_LIGHT,        ['TABS']=TAN,      }    },-- }}}update='ModeChanged',  },}})

lualine.nvim

An example config
-- Defined in https://github.com/Iron-E/nvim-highlitelocalBLUE='#7766ff'localCYAN='#33dbc3'localGREEN='#22ff22'localGREEN_LIGHT='#99ff99'localICE='#95c5ff'localORANGE='#ff8900'localORANGE_LIGHT='#f0af00'localPINK='#ffa6ff'localPINK_LIGHT='#ffb7b7'localPURPLE='#cf55f0'localPURPLE_LIGHT='#af60af'localRED='#ee4a59'localRED_DARK='#a80000'localRED_LIGHT='#ff4090'localTAN='#f4c069'localTEAL='#60afff'localTURQOISE='#2bff99'localYELLOW='#f0df33' localMODES={-- {{{  ['c']= {'COMMAND-LINE',RED},  ['ce']= {'NORMAL EX',RED_DARK},  ['cv']= {'EX',RED_LIGHT},  ['i']= {'INSERT',GREEN},  ['ic']= {'INS-COMPLETE',GREEN_LIGHT},  ['n']= {'NORMAL',PURPLE_LIGHT},  ['no']= {'OPERATOR-PENDING',PURPLE},  ['r']= {'HIT-ENTER',CYAN},  ['r?']= {':CONFIRM',CYAN},  ['rm']= {'--MORE',ICE},  ['R']= {'REPLACE',PINK},  ['Rv']= {'VIRTUAL',PINK_LIGHT},  ['s']= {'SELECT',TURQOISE},  ['S']= {'SELECT',TURQOISE},  ['']= {'SELECT',TURQOISE},  ['t']= {'TERMINAL',ORANGE},  ['v']= {'VISUAL',BLUE},  ['V']= {'VISUAL LINE',BLUE},  ['']= {'VISUAL BLOCK',BLUE},  ['!']= {'SHELL',YELLOW}, -- libmodal  ['BUFFERS']=TEAL,  ['TABLES']=ORANGE_LIGHT,  ['TABS']=TAN,}-- }}} localMODE_HL_GROUP='LualineViMode' --[[/* FELINE CONFIG */]] vim.api.nvim_create_autocmd('ModeChanged', {callback=function()require('lualine').refresh {scope='window',place= {'statusline'}}end}) require('lualine').setup {sections= {lualine_a= {{function()-- auto change color according the vim modelocalmode_color,mode_name ifvim.g.libmodalActiveModeNamethenmode_name=vim.g.libmodalActiveModeNamemode_color=MODES[mode_name]elselocalcurrent_mode=MODES[vim.api.nvim_get_mode().modemode_name=current_mode[1]mode_color=current_mode[2]end vim.api.nvim_set_hl(0,MODE_HL_GROUP, {fg=mode_color,bold=true}) returnmode_name..''end,icon= {'',align='left'},color=MODE_HL_GROUP,padding=0,}}}}

staline.nvim

An example config
--[[/* CONSTANTS */]] -- Defined in https://github.com/Iron-E/nvim-highlitelocalBLUE='#7766ff'localCYAN='#33dbc3'localGREEN='#22ff22'localGREEN_LIGHT='#99ff99'localICE='#95c5ff'localORANGE='#ff8900'localORANGE_LIGHT='#f0af00'localPINK='#ffa6ff'localPINK_LIGHT='#ffb7b7'localPURPLE='#cf55f0'localPURPLE_LIGHT='#af60af'localRED='#ee4a59'localRED_DARK='#a80000'localRED_LIGHT='#ff4090'localTAN='#f4c069'localTEAL='#60afff'localTURQOISE='#2bff99'localYELLOW='#f0df33' localMODES={-- {{{  ['c']= {'COMMAND-LINE',RED},  ['ce']= {'NORMAL EX',RED_DARK},  ['cv']= {'EX',RED_LIGHT},  ['i']= {'INSERT',GREEN},  ['ic']= {'INS-COMPLETE',GREEN_LIGHT},  ['n']= {'NORMAL',PURPLE_LIGHT},  ['no']= {'OPERATOR-PENDING',PURPLE},  ['r']= {'HIT-ENTER',CYAN},  ['r?']= {':CONFIRM',CYAN},  ['rm']= {'--MORE',ICE},  ['R']= {'REPLACE',PINK},  ['Rv']= {'VIRTUAL',PINK_LIGHT},  ['s']= {'SELECT',TURQOISE},  ['S']= {'SELECT',TURQOISE},  ['']= {'SELECT',TURQOISE},  ['t']= {'TERMINAL',ORANGE},  ['v']= {'VISUAL',BLUE},  ['V']= {'VISUAL LINE',BLUE},  ['']= {'VISUAL BLOCK',BLUE},  ['!']= {'SHELL',YELLOW}, -- libmodal  ['BUFFERS']=TEAL,  ['TABLES']=ORANGE_LIGHT,  ['TABS']=TAN,}-- }}} localMODE_HL_GROUP='StalineViMode' --[[/* FELINE CONFIG */]] vim.api.nvim_set_hl(0,MODE_HL_GROUP, {})require('staline').setup({mode_colors= {},mode_icons= {},sections= {left=  {function()localmode_color,mode_name ifvim.g.libmodalActiveModeNamethenmode_name=vim.g.libmodalActiveModeNamemode_color=MODES[mode_name]elselocalcurrent_mode=MODES[vim.api.nvim_get_mode().modemode_name=current_mode[1]mode_color=current_mode[2]end vim.api.nvim_set_hl(0,MODE_HL_GROUP, {bold=true,fg=mode_color})return {MODE_HL_GROUP,mode_name}end,  }},})

FAQ

nvim-libmodal vs. vim-libmodal

The following is a list of expressions that work innvim-libmodal but notvim-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 invim-libmodal but notnvim-libmodal:

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

[8]ページ先頭

©2009-2025 Movatter.jp