如何与vim相乘

ibl*_*lue 4 vim

我有一个CSS文件,一切都是稍微有点大,所以我想替换的每一个发生$size px$size*0.75 px(例如100px75px等).

我怎么用vim做到这一点?它甚至可能吗?

Ken*_*ent 12

这个命令可以帮到你:

%s/\d\+\ze\s*px/\=float2nr(submatch(0)*0.75)/g
Run Code Online (Sandbox Code Playgroud)

这会改变:

200 px
100px
777px
Run Code Online (Sandbox Code Playgroud)

成:

150 px
75px
582px
Run Code Online (Sandbox Code Playgroud)

添加说明

这是一个:s命令,我们先找到之前的数字px,在替换部分,我使用替换表达式,进行计算.该submatch(0)会参考我们刚刚找到的数字.float2nr()函数只是用于获取整数结果.

在vim:h:s:h\ze和:h sub-replace-expression中有非常详细的解释

  • @iblue vim 中 `:h :s` `:h \ze` 和 `:h sub-replace-expression` 有非常详细的解释 (2认同)