我有一个css选择器,例如:
#page-site-index .toolbar .items {
如何捕获“.toolbar .items”部分并将其用于替换Vim S& R的部分,以便此选择器可以变为:
#page-site-index .toolbar .items, #page-site-login .toolbar .items {
类似的东西:
%s:/#page-site-index \(.toolbar .items\)/#page-site-index (the captured string), #page-site-login (the captured string)/g
顺便说一下,我正在使用Vim的终端版本。
答案 0 :(得分:13)
使用\1
...请在此处查看维基:http://vim.wikia.com/wiki/Search_and_replace
更明确地说:
%s:/#page-site-index (.toolbar .items)/#page-site-index \1, #page-site-login \1/g
答案 1 :(得分:2)
在你的vim中尝试这个命令:
%s/\v#(page-site-index )(\.toolbar \.items)/&, #page-site-login \2/g
你也可以使用\zs, \ze
而无需分组:
%s/#page-site-index \zs\.toolbar \.items\ze/&, #page-site-login &/g
保持打高尔夫球,如果文字就像你提出的那样,你可以:
%s/#page-site-index \zs[^{]*\ze /&, #page-site-login &/g
答案 2 :(得分:2)
您已经尝试通过\(...\)
将正则表达式的有趣部分分组。要在替换部件中引用这些捕获的子匹配,请使用\1
,\2
等,其中数字指的是第一个(打开的)捕获组,从左到右对。对于整个匹配的文本,还有\0
== &
。有关详细信息,请参阅:help /\1
。
答案 3 :(得分:0)
首先输入:
进入命令模式。然后发出以下命令:
%s/#page-site-index .toolbar .items/#page-site-index .toolbar, #page-site-login
.toolbar .items/
不关心格式化,因为stackoverflow markdown解析器......