有一个css文件,我想做两件事:
1)删除所有Webkit关键帧和周围的空白字符,例如:
@keyframes outToLeft {
to {
opacity: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
}
2)删除所有webkit前缀属性和周围的空格字符,例如:
-webkit-transform: translate3d(100%, 0, 0);
我尝试使用%s,但是它不起作用(也许我的构造不正确)
最佳方法是什么?
解决方案是全局:g
命令。
对于您的第一部分,它看起来像这样:
:g/@^keyframes/norm d}
这意味着在匹配模式^@keyframes
的每一行上执行norm d}
norm
允许给该块一个普通命令。 d}
删除整个块。
对于第二个示例,它甚至更容易,我们可以将:g
命令与d
标志一起使用:
:g/^-webkit/d
[d
仅表示删除。
由于您提到了空格,所以这些行可能看起来像这样:
:g/@^keyframes/norm d}dk
删除块之前和之后的行,或保留一行:
:g/@^keyframes/norm d}dd
第二个示例也是如此:
:g/^-webkit/norm dj
如果您也想删除以下行。
不可能,IdeaVim不支持全局g:命令。
请参见https://youtrack.jetbrains.com/issue/VIM-831以获取更多信息和更新状态。
如果将其替换为空行很好,则可以执行类似:%s/.*-webkit.*//g
的操作