Por que ci "e ci (, ci {... se comportam de maneira diferente?

todos nós sabemos o queci" ci' ci( ci[ ... faz. Muito útil na edição do dia a dia. Eu encontrei algo estranho e verifiquei a ajuda, não descobri o porquê.

digamos, eu tenho um arquivo:

foo "target"
foo 'target'
foo (target)
foo {target}
foo [target]
foo <target>

se meu cursor nacomeçando de cada linha, (nof'), então eu digito ci ", ci', ci (...

acix funciona apenas com aspas (simples ou dupla), não funciona para colchetes. por que eles se comportam de maneira diferente?

(dix, vix o mesmo)

testado com --noplugin, vim 7.3

obrigado.

Atualizar

obrigado @romainl pela resposta. Ainda tenho dúvidas em relação ao "par de processamento no vim"

verifique este exemplo:

foo "targ\"eti\" some\"thing else "

se eu tiver uma linha como acima, eu digitoci", não importa cursor está no começo ou entre aspas, funciona perfeitamente, parece que o vim tem a idéia de "par"?

e isso talvez o que você quis dizer sobre o emparelhamento?

foo "target x some"thing else "
foo (target x some(thing else )

Eu tenho acima de duas linhas, se (cursor emx) Eu digitoci" eci(, nada aconteceu na segunda linha, mas a primeira linha mudou para:

foo "I"thing else " (I is cursor)

questionAnswers(1)

yourAnswerToTheQuestion