Después de leer su comentario sobre el caso de uso, parece que podría usar una asignación de teclas en lugar de una macro.
Tengo esta línea en mi .vimrc (no recuerdo dónde la encontré):
nnoremap <Leader>s :%s/\<<C-r><C-w>\>//g<Left><Left>
Tiene un efecto similar al caso de uso que describió, colocándolo en la línea de comando, por lo que lo único que debe hacer es escribir el reemplazo y presionar enter, pero en este caso, reemplazar todas las apariciones de la palabra que estaba debajo de su cursor .
Para reemplazar dentro del bloque actual, creo que algo como lo siguiente debería funcionar:
nnoremap <Leader>s m'va{<ESC>``:'<,'>s/\<<C-r><C-w>\>//g<Left><Left>
Por supuesto, puede asignarlo a la clave que desee.
Lo que hace lo anterior: marca la posición actual usando el marcador sin nombre, selecciona visualmente el bloque actual, abandona el modo visual y regresa el cursor a la posición guardada (los marcadores de selección visual todavía están configurados), ingresa al modo de comando y escribe el comando sustituto , insertando la palabra que estaba debajo del cursor con <C-r><C-w>
y colocando el cursor para escribir el reemplazo.