1

我想将一组变量放在一个列表中并替换它们中的每一个。
例子:

let mylist = ['var1','var2','var3']

for i in range(0,2)
 let mylist[i] = substitute(mylist[i], '\.', ',', 'g')
endfor

这必须这样做:

let var1 = substitute(var1, '\.', ',', 'g')  
let var2 = substitute(var2, '\.', ',', 'g')  
let var3 = substitute(var3, '\.', ',', 'g')  

但它不起作用。

我做错了什么?

编辑
相同的变量 ['var1','var2','var3'] 必须做更多的替换,所以我决定将所有替换添加到列表中:

let mylist = ['var1','var2','var3']
let mySubst = [['\.', ','], ['\s*$', ''], ['[,.]0$', ''], ['^[.,]', '0&']]

for i in range(0,len(mylist)-1)
    for m in range(0,len(mySubst)-1)
      let mylist[i] = substitute(mylist[i] , mySubst [m][0],  mySubst [m][1], 'g')
    endfor
endfor

这行不通。

4

2 回答 2

2

试试这个:

let [var1, var2, var3] = map([var1, var2, var3], 'substitute(v:val, "\\.", ",", "g")')

重新阅读问题后,也许这就是您要查找的内容:

let list = ['var1', 'var2', 'var3']
let [var1, var2, var3] = map(list, 'substitute({v:val}, "\\.", ",", "g")')
于 2012-05-06T17:33:04.940 回答
1

您不应该在这一行的变量周围加上引号:let mylist = ['var1','var2','var3']. 这使它们成为字符串文字var1,var2var3, 而不是这些变量的值。

于 2012-05-06T16:41:10.827 回答