vimgolf的问题请指教

Please give me some advice on the problem of vimgolf

https://www.vimgolf.com/challenges/9v006233d72d000000000219

开始文件

#!/bin/bash
a = 5
b = 10
sum = $a + $b
echo $sum

mul = $a * $b
echo $mul

文件结束

#!/bin/bash
a=5
b=10
sum=$((a + b))
echo $sum

mul=$((a * b))
echo $mul

=================================

这道题的击键是26,我只得到41。

我的使用方式

:%s/ = /=/g

:%s/$a/$((a/g

:%s/$b/b))/g

我不知道如何减少击键次数。请给我一些建议。

  • /g 表示“对行中的每个匹配项进行替换”。每个模式只有一个匹配项,因此 /g 不是必需的:

    :%s/ = /=<CR>
    :%s/$a/$((a<CR>
    :%s/$b/b))<CR>
    

    您已减少到 36 次击键。

    参见:help :s_g

  • 在这种特定情况下,$a + $b 可以与单个模式 $.*b 匹配,因此您可以将最后两个替换融合为一个:

    :%s/ = /=<CR>
    :%s/$.*b/$((&))<CR>
    

    而您的击键次数减少到 26 次。

    :help s/\&