Necesito ejecutar este comando :perldo s/assigned_to(?!_member|_role)/assigned_to_member/g
en todos los búferes abiertos. Estoy usando :perldo
porque el builtin vim regex (es decir, %s/foo/bar/g
) no funciona con mi lookahead negativo por alguna razón.Vim: cómo ejecutar un comando de modo no normal en todos los búferes?
A través de mi investigación he encontrado los comandos :bufdo
y :execute "normal <foo>"
pero aún no he descubierto cómo combinarlos.
¿Alguien sabe cómo podría ejecutar el comando perldo en todos mis búferes abiertos? Gracias!
Eso funcionó! ¿Qué hace el '!' Después de ': bufdo'? ¡Eso podría haber sido lo que me estaba perdiendo! – BenHohner
Recomiendo leer ': h bufdo!' En Vim. Si no tiene el tiempo (khm): si 'perldo' falla (no puede reemplazar nada en ninguno de los búferes)" normal "': bufdo' "sale". Con '!' El comando 'perldo' continúa en el siguiente buffer. –
El signo de exclamación fuerza algo (por ejemplo, 'wq!') O actúa como un interruptor de alternancia. Pero depende del comando. En este caso para 'bufdo' si el buffer no puede ser abandonado, entonces el comando fallará. – kprobst