0

使用 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>

功能、错误或用户错误?

4

3 回答 3

1

我不记得 Sparkup 曾经支持“内容”大括号内的递增数字,所以我会说“功能”。

不过,不要浪费时间要求修复插件的问题跟踪器。

于 2015-09-16T20:16:42.883 回答
0

我担心这个插件认为$花括号中的文本不应该受到影响。要计算您的 Item $ 列表,您可以尝试此命令

:let @a=1 | %s/\$/\=(@a+setreg('a',@a+1))/g

或用于可视模式下的选定块

:let @a=1 | '<,'>s/\$/\=(@a+setreg('a',@a+1))/g 
于 2015-09-16T20:14:14.850 回答
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>

于 2015-09-17T20:09:15.643 回答