O vim irá repetir o comando g@
. Infelizmente, não há como evitar isso, e como você também não pode acessar o histórico de comandos internos, é impossível restaurar o comando anteriormente emitido. (Você poderia hackear algo em conjunto para mapeamentos personalizados que dependam de repeat.vim, mas não funcionará para comandos internos.)
A única solução em que consigo pensar é alterar o mapeamento para usar o comando normal y
e acionar depois do que for parte de seu "yank personalizado", por exemplo, via :autocmd
on CursorMoved,CursorHold
.