删除IdeaVim中包含模式的行

时间:2017-10-11 13:23:33

标签: css vim ideavim

有一个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但它不起作用(也许我的构造不正确)

这样做的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

解决方案是全局: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

如果你想删除以下行。

答案 1 :(得分:1)

不可能,IdeaVim不支持全局g:命令。

有关更多信息和更新的状态,请参见https://youtrack.jetbrains.com/issue/VIM-831

如果将其替换为空行是可以的,则可以执行类似:%s/.*-webkit.*//g

的操作