Lua port of targets.vim for Neovim.
- Pairs:
(,),[,],{,},<,> - Quotes:
',",`,q(any quote) - Separators:
,,.,;,:,+,-,=,~,_,/,|,\,&,$,#,* - Arguments:
a(comma-separated function parameters)
Modifiers: a (around), i (inside), A (Around), I (Inside)
Seek keys: n (next), l (last), c (current, default)
With lazy.nvim:
{
"coolcat702/targets.nvim",
event = "VimEnter",
opts = {}, -- your config here
config = function(_, opts)
require("targets").setup(opts)
end
}This is the default config:
opts = {
-- modifier keys
aiAI = { 'a', 'i', 'A', 'I' },
-- seek keys
nl = { 'n', 'l' },
-- seek preference order
seek_ranges = 'cc cr cb cB lc ac Ac lr lb ar ab lB Ar aB Ab AB rr ll rb al rB Al bb aa bB Aa BB AA',
-- ranges that add entries to jump list
jump_ranges = 'bb bB BB aa Aa AA',
-- separator characters
separators = { ',', '.', ';', ':', '+', '-', '=', '~', '_', '/', '|', '\\', '&', '$', '#', '*' },
-- enable 'ia'/'aa' objects
arguments = true,
}di( delete inside parens
da[ delete around brackets
cin" change inside next double quote
ciq change inside any quote
di, delete between commas
cia change inside argument
din( change inside next parens
dil{ delete inside last braces
Automatically creates mappings in operator-pending (o) and visual (x) modes for all combinations:
a/i/A/I+( ) [ ] { } < > b r q ' " \, . ; : + - = ~ _ / | \ & $ # *+c/n/l