Q:

Configuring VIM 'ci(' style commands to 'f(' the line first and retry if they fail

I use the command c or d (change, delete), followed by a or i (including/excluding wrapper chars), followed by one of '"(){}[].
For example, ci(, when the cursor is between two parens, will delete everything in the parens and leave me in insert mode right between the two remaining parens.
However, if my cursor is in column 0 in the following example line, ci( will fail because the cursor is not in a () block.
Example line with some (stuff in parens)

I want ci( from column 0 to first try (and fail), and then repeat itself with f(, jumping to the first paren on the line.  Is this possible/easy?  I can't figure out how to hook into the failure of the ci( finding of the code block.

A:

Why don't use:
%ci(

It would be a more simple workflow IMHO. Moreover, just some hours ago I read a very nice answer about this kind on problem.

