fun! Qjtwj(f,...)
"区间头尾基,要求先用.t,.w设置头尾,
"每个函数都要求前2个为(本行,首行,剩余参数)
"就可以通过.t,.w进行动作."
let H=function(a:f)
let m=s:bt
echo[s:bt,s:bw]
call Ths(m)
"先跳行数,再一行行往下走.最后回到当前头."
for i in range(m,s:bw)
let C=extend([i,m],a:000)
call call(H,C)
norm!j
"先调用,再往下走一行.不然就错了."
endfor
call Ths(m)
endf

主要是为了​​.t​​​或​​.w​​​来设置​​区间​​​,通过该区间来调用函数,这里的函数要求前2个参数为​​当前行,当前区间首行​​​.
这样,我们可以,通过实现依赖​​​当前行与首行​​的函数来实现功能.

fun! Jxhy(i,j)
"加序号呀,i,j为当前行与区间首行"
let i=Thgs(":s/^/{},/",a:i-a:j)
exe i
endf

然后,调用​​Qjtwj('Jxhy')​​​就可实现​​头尾​​​区间的每行都调用​​Jxhy​​函数.