使用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>
特性,错误,还是用户错误?
发布于 2015-09-16 20:14:14
我担心这个插件把花括号中的$视为不应该受影响的文本。要计算项$ list,可以尝试以下命令
:let @a=1 | %s/\$/\=(@a+setreg('a',@a+1))/g或用于可视模式下选定的块。
:let @a=1 | '<,'>s/\$/\=(@a+setreg('a',@a+1))/g 发布于 2015-09-16 20:16:42
我不记得Sparkup支持在“内容”大括号内增加数字,所以我会说“功能”。
不过,不要浪费时间要求修复插件的问题跟踪器。
发布于 2015-09-17 20:09:15
当我问这个问题时,我接受了这个问题的答案,但是我加入这个问题是为了展示一个稍微不同的需求的替代方法。我需要在文本的同时添加一个嵌套标记,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>
https://stackoverflow.com/questions/32616320
复制相似问题