>>532
レスありがとうございました。
s/\(\d\{1,3}\)\ze\(\%(\d\{3}\)\+\(\d\)\@!\)/\1,/g
を、
Perlの正規表現
s/(\d{1,3})(?=(?:\d{3})+(?!\d))/$1,/g
と比べてみて、だいたい分かりました。
とても勉強になりました。

あとは、どうキーにアサインするか考えてみたいと思います。

それにしてもVimの正規表現はややこしいですね。とても普段は検索・置換に使えそうも無いです。