Esto responde a su pregunta real, pero no es su intención.
Se preguntó acerca de la sustitución de la enésima aparición de una palabra (pero parecía significar "dentro de una línea"). Aquí hay una respuesta para la pregunta, si alguien lo encuentra como lo hice =)
Para tareas extrañas (como la necesidad de reemplazar cada 12 aparición de "perro" por "loro"), me gusta usar grabaciones recursivas .
Primer espacio de grabación en la @q
qqq
Ahora inicie una nueva grabación en q
qq
A continuación, hacerlo de forma manual lo que quiere hacer (usando el ejemplo anterior, reemplace el 12 ocurrencia de "perro" con "loro"):
/dog
nnnnnnnnnnn
borrado "perro" y entrar en inserción
diwi
tipo de loro
parrot
Ahora reproducir su "@q" VACIO grabación
@q
que no hace nada.
Por último, detener la grabación:
q
Ahora su grabación en @q llama a sí mismo al final. Pero debido a que llama a la grabación por el nombre, ya no estará vacía. Por lo tanto, llame a la grabación:
@q
Volverá a reproducir la grabación, luego al final, como el último paso, volverá a reproducirse. Repetirá esto hasta el final del archivo.
TLDR;
qq
q
/dog
nnnnnnnnnnndiwiparrot<esc>
@q
q
@q
Al parecer hay en sed, pero no vim '' s ///: http://vim.1045645.n5.nabble.com/replace-nth-occurrence-on-each-line-like- sed-td1169460.html – keflavich