2013-04-17 144 views
1

在大多数脚本语言中,很容易将字符串拆分为不带定界符的固定长度的子字符串。例如在红宝石我可以做将字符串拆分为基于固定长度的子字符串vim

'acgatgctgc'.scan(/.{3}/).join(' ') #=>"acg atg ctg" 

什么是使用vim脚本这样做?或者在vim中使用单个命令实现相同的功能?

编辑 注:请注意红宝石条最C

回答

3
join(split('acgatgctgc','.\{3}\zs'),' ') 

上述行会给你

"acg atg ctg c" 

我知道有一个c,它可以通过filter()功能被去除,如果你想删除它:

join(filter(split('acgatgctgc','.\{3}\zs'),'len(v:val)==3'),' ') 

will给你:

"acg atg ctg" 

我不知道它是否回答你的问题。

+0

看起来不错实际上,我宁愿不删除它! – eastafri

+1

这里是相关的':substitute'命令,如果你需要的话:':%s/\ v。{3}($)@!/&/ g' –

+0

@eastafri但是你的问题中的例子的结果是* * no **'c' ... – Kent

相关问题