2012-05-06 29 views
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 

这不起作用。

回答

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")') 
+0

嗨萨尔瓦多伊斯拉,在第一线做工作,第2解决方案没有什么会替换命令,因为有在命令2个其他变量?PE'让[VAR1,VAR2,VAR3] =地图([var1,var2,var3],'substitute(v:val,searchvariable,replacevariable,“g”)')'不起作用 – remio

+0

这个替代看起来不错,所以有点难以知道为什么它没有更多的细节失败。你能分享一点你的代码吗? – Raimondi

+0

El Isra,我在我的问题中添加了更多信息。请在编辑后查看。 – remio

1

你不应该在这条线在你的变量报价:let mylist = ['var1','var2','var3']。这使它们成为字符串文字var1,var2var3,而不是这些变量的值。

+0

这将是一个很好的解决方案,但去掉引号没“T工作:( – remio