不止一次,我不得不在python的列表中插入一个词的一些变体,例如:
intf = ["eno1", "eno2", "eno3", "eno4", "eno5", "eno6", "eno7", "eno8", "eno9", "eno10"]
是否有一种简单的方法可以用for循环插入这些单词?我发现了这个:https://renenyffenegger.ch/notes/development/vim/commands/put这和我想做的非常接近。例如,我可以输入:
:for i in range(1,10) | put ='"eno'.i.'", ' | endfor
得到:
"eno1",
"eno2",
...
唯一的区别是它将每个单词插入到新的行中。有没有一种变体,把所有的单词都插在同一行上?
- 首先将所有值附加到变量中,然后调用put。
:let a="" | for i in range(1,10) | let a.='"eof'.i.'", ' | endfor | put =a
- 要删除结尾的'
,
',我们也可以将值添加到列表中,然后调用join
:let a=[] | for i in range(1,10) | call add(a,'"eof'.i.'"') | endfor | put =join(a, ', ')
为什么不直接在代码中生成这个列表呢?
intf = []
for i in range(1, 11):
intf.append('eno' + str(i))
如果你坚持在Vim中使用Vim功能:
intf = <C-r>=range(1,10)->map('"eno" . v:val')->string()<CR>
参见:help i_ctrl-r
,:help "=
,:help range()
,:help map()
,:help string()
,:help method
。