O que você quer dizer com
Every time the visual selection changes
?
Você seleciona foo em foo bar , obtém foo na área de transferência, muda de ideia e, em vez disso, seleciona bar e encontra bar no lugar de foo na área de transferência?
Se sim, nunca encontrei esse comportamento no MacVim ou em qualquer outro aplicativo MacOS X nativo.
Isso pode acontecer no GVim no Linux, onde há mais de uma área de transferência (uma delas contém o texto selecionado), mas mesmo assim dependerá de como ela foi compilada.
Você encontra foo na área de transferência depois de alterá-la para bar ?
Se sim, isso é totalmente normal: alterar uma string com p ou c sempre coloca o original no registro padrão que corresponde à área de transferência do sistema no MacVim.
Uma forma de contornar esse "problema" é usar "_dP em vez de p . Significa "apagar o texto selecionado no 'registro blackhole' ( "_d ) e depois colocar o conteúdo do registrador padrão antes do cursor".
Você poderia usar uma estratégia semelhante para c : "_di fará o mesmo, mas colocará você no modo INSERT.