Após uma rápida olhada na documentação ( help v_aquote
, help v_iquote
), estou inclinado a dizer que isso é um erro em ci"
, em vez de uma deficiência em ci(
. O comportamento ci(
observado é consistente com ci{
e ci[
.
Dito isso, você pode obter o comportamento desejado de ci(
com esse mapeamento:
nnoremap ci( f(ci(
--- EDIT ---
--- (Esta questão foi migrada para superusuário, da qual não sou membro)
A função / mapeamento a seguir tem um comportamento diferente dependendo se um (
precedente é detectado. Ele resolve o problema (a) (b)
com meu mapeamento original (como apontado nos comentários). Ainda pode não ser perfeito embora ...
function New_cib()
if search("(","bn") == line(".")
sil exe "normal! f)ci("
sil exe "normal! l"
startinsert
else
sil exe "normal! f(ci("
sil exe "normal! l"
startinsert
endif
endfunction
nnoremap ci( :call New_cib()<CR>
nnoremap cib :call New_cib()<CR>