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