The vim textobject plugin to treat function-call regions.
Default mappings are assigned to if
and af
.
if
andaf
, both of them select a region likefunc(argument)
.if
andaf
behave differently when a function takes another function as its argument.if
selects the most inner function under the cursor.af
selects the first function including the cursor position by its parenthesis. However if any candidate would be found, it falls back toif
.
# : cursor position
call func1(func2(argument))
|<-----if---->|
call func1(func2(argument))
|<--------af-------->|
If you don't like to map to if
and af
, please define the variable named g:textobj_functioncall_no_default_key_mappings
in your vimrc.
let g:textobj_functioncall_no_default_key_mappings = 1
And then map to your preferable keys.
xmap iF <Plug>(textobj-functioncall-i)
omap iF <Plug>(textobj-functioncall-i)
xmap aF <Plug>(textobj-functioncall-a)
omap aF <Plug>(textobj-functioncall-a)
This textobject could select following patterns.
func(argument)
array[index]