例子:
数学 30
语文 29
英语 89
现在要将三门课程分数加起来并打印出来,可执行以下命令
:let i=0
:g/^/let i+=str2nr(substitute(getline('.'),'.\+\(\d\+\).\+,'\1',''))
:echo i
如此就会得到总分,下面解释一下各命令
let i=0 是设置i变量并赋值0
str2nr是字符串转数字函数
substitute({source},{pattern},{replace},{flag}) 这是一个替换函数,使用 replace 去替换 source中pattern匹配的内容,并返回替换后的source。
getline({pattern}) 是返回查找到的内容所在行的整行内容,故getline('.') 查找的是所有行。
echo i 就跟shell 脚本是一样的意思,就是输出 i