使用vim的sparkup插件(特别是Ubuntu 15.04上的vim-gnome,虽然我怀疑这很重要),我正在生成一个带有项目编号的列表:
ion-content.has-tabs > .list > a.item[href=#/item/$]{Item $}*3
结果会替换[href=#/item/$]
中的项目编号,而不会替换{Item $}
中的项目编号:
<ion-content class="has-tabs">
<div class="list">
<a href="#/item/1" class="item">Item $</a>
<a href="#/item/2" class="item">Item $</a>
<a href="#/item/3" class="item">Item $</a>
</div>
</ion-content>
功能,错误或用户错误?
答案 0 :(得分:1)
我不记得Sparkup支持在“内容”括号内增加数字,所以我会说“功能”。
不要浪费时间在插件的问题跟踪器上寻求修复。
答案 1 :(得分:0)
我很抱歉这个插件认为花括号中的$
是一个不应该受到影响的文本。要计算Item $列表,可以尝试使用此命令
:let @a=1 | %s/\$/\=(@a+setreg('a',@a+1))/g
或视觉模式中的选定块
:let @a=1 | '<,'>s/\$/\=(@a+setreg('a',@a+1))/g
答案 2 :(得分:0)
我在问这个问题时接受了问题的答案,但我添加了这个以显示另一种方法,以满足略微不同的要求。我需要添加一个嵌套标签以及Sparkup不支持的文本。所以我找到了一个单步的两步解决方案,它也解决了原始的项目编号问题(在我的现实世界解决方案中更复杂但在这里简化了)。
这个火花:
ion-content > .list > a.item.item-icon-left.Item$[href=#/items/$]*3 > i.icon.ion-email
生成这个:
<ion-content>
<div class="list">
<a href="#/items/1" class="item item-icon-left Item1">
<i class="icon ion-email"></i>
</a>
<a href="#/items/2" class="item item-icon-left Item2">
<i class="icon ion-email"></i>
</a>
<a href="#/items/3" class="item item-icon-left Item3">
<i class="icon ion-email"></i>
</a>
</div>
</ion-content>
然后在我以可视模式选择行后,运行:
:'<,'>s/ Item\([0-9]*\)">/">Item \1/g
产生我想要的结果:
<ion-content>
<div class="list">
<a href="#/items/1" class="item item-icon-left">Item 1
<i class="icon ion-email"></i>
</a>
<a href="#/items/2" class="item item-icon-left">Item 2
<i class="icon ion-email"></i>
</a>
<a href="#/items/3" class="item item-icon-left">Item 3
<i class="icon ion-email"></i>
</a>
</div>
</ion-content>