A simple word switch plugin with neovim
WordSwitch.nvim is a simple plugin for Neovim
WordSwitch.nvim require Neovim version 0.7 or above
If you are using vim-plug or packer.nvim, then add one of the following line to your init.vim or init.lua file, correspodingly:
" vim-plug
Plug 'tandy1229/wordswitch.nvim'
" packer.nvim
use 'tandy1229/wordswitch.nvim'For lazy.nvim:
-- lazy.nvim
{ 'tandy1229/wordswitch.nvim' },Or you can use other plugin manager.
The plugin provides a single command WordSwitch, which will replace the word
under the matching word within a list of substitutions. eg, with your cursor
over the word true will switch to false.
Note
now you can also switch TRUE to FALSE and switch True to False!!
It works for all other dictionaries!
The default mapping is gs to switch the word.
You can change the default keymap gs to your prefer, for example:
For init.vim user, you can add it into your init.vim:
let g:wordswitch_keymap = '<Leader>s'For init.lua user, you can add it to your init.lua:
vim.g.wordswitch_keymap = '<Leader>s'You can customize your own list, use g:custom_wordswitch_definitions to
add your own list, for example:
For init.vim user, you can add it into your init.vim:
let g:custom_wordswitch_definitions = [
\ [ 'let', 'unlet' ],
\ [ 'thx', 'thank you'],
\ [ 'under', 'below', 'beneath']
]For init.lua user, you can add it to your init.lua:
vim.g.custom_wordswitch_definitions = {
{ 'let', 'unlet' },
{ 'thx', 'thank you' },
{ 'under', 'below', 'beneath' }
}The default words list are beneath:
{ 'acquire' , 'release' }
{ 'add' , 'remove' }
{ 'advance' , 'retreat' }
{ 'allocate' , 'deallocate' }
{ 'allow' , 'deny' }
{ 'assemble' , 'disassemble' }
{ 'assign' , 'deassign' }
{ 'associate' , 'dissociate' }
{ 'attach' , 'detach' }
{ 'begin' , 'end' }
{ 'bind' , 'unbind' }
{ 'commit' , 'rollback' }
{ 'compile' , 'decompile' }
{ 'compose' , 'parse' }
{ 'compress' , 'decompress' }
{ 'connect' , 'disconnect' }
{ 'construct' , 'destruct' }
{ 'create' , 'destroy' }
{ 'do' , 'undo' }
{ 'enable' , 'disable' }
{ 'encode' , 'decode' }
{ 'encrypt' , 'decrypt' }
{ 'enqueue' , 'dequeue' }
{ 'enter' , 'leave' }
{ 'expand' , 'collapse' }
{ 'first' , 'last' }
{ 'freeze' , 'unfreeze' }
{ 'front' , 'back' }
{ 'get' , 'set' }
{ 'grant' , 'revoke' }
{ 'head' , 'tail' }
{ 'high' , 'low' }
{ 'import' , 'export' }
{ 'include' , 'exclude' }
{ 'increase' , 'decrease' }
{ 'increment' , 'decrement' }
{ 'indent' , 'dedent' }
{ 'inflate' , 'deflate' }
{ 'inject' , 'eject' }
{ 'input' , 'output' }
{ 'insert' , 'delete' }
{ 'install' , 'uninstall' }
{ 'left' , 'right' }
{ 'Left' , 'Right' }
{ 'link' , 'unlink' }
{ 'load' , 'unload' }
{ 'lock' , 'unlock' }
{ 'max' , 'min' }
{ 'maximum' , 'minimum' }
{ 'new' , 'old' }
{ 'next' , 'previous' }
{ 'open' , 'close' }
{ 'off' , 'on' }
{ 'paste' , 'cut' }
{ 'push' , 'pop' }
{ 'read' , 'write' }
{ 'reference' , 'dereference' }
{ 'register' , 'deregister' }
{ 'resume' , 'suspend' }
{ 'select' , 'deselect' }
{ 'send' , 'receive' }
{ 'serialize' , 'deserialize' }
{ 'set' , 'get' }
{ 'show' , 'hide' }
{ 'start' , 'stop' }
{ 'true' , 'false' }
{ 'up' , 'down' }
{ 'upper' , 'lower' }MIT