Este é um caso típico em que uma macro recursiva pode ajudar. Basta colocar sua seqüência de teclas em uma macro recursiva e executá-la. Resumindo o artigo da wiki, para não irritar os deuses da SE:
-
q q q - limpe o
qregister -
q q - inicia a gravação de uma macro
q -
/\msin\zs(Digite - encontresin(e deixe o cursor em( -
c s ( ] - substitui
(...)por[...](use ] em vez de [ para evitar adicionar espaços extras) -
@ q - executa a macro
q(que não faz nada por agora, pois o registroqestá vazio) - q - finaliza a gravação da macro.
Em seguida, execute a macro que acabou de gravar: @ q . Isso é tudo, o @q no final faz a macro chamar-se. Ele pára no primeiro erro, ou seja, quando /sin( não encontra mais nada.
Em uma observação: se você não quiser aplicar essa alteração em todo o arquivo, mas apenas entre linhas, digamos, 10 e 20, e ainda usar recursão para evitar as confirmações manuais, use \%>...l e \%<...l para fazer sua correspondência de expressão regular apenas entre os limites desejados: /\m\%>9l\%<21lsin\zs( .