我有一堆Sass文件,我的设计师使用了错误的语法。我想要的是:margin-top 1px
,但他写成了margin-top: 1px
。
所以我轻松地编写了一个子命令:
:rubydo sub! /([\w-]+):/,':\1'
这样可以解决所有冒号的问题,并将它们移动到我想要的位置。我有大约50个sass文件在一个名为stylesheets
的目录中。如何一次性在所有文件上运行此命令?我不太确定如何在vim
中处理这个问题。也许和grep
有关?我不太清楚。
我有一堆Sass文件,我的设计师使用了错误的语法。我想要的是:margin-top 1px
,但他写成了margin-top: 1px
。
所以我轻松地编写了一个子命令:
:rubydo sub! /([\w-]+):/,':\1'
这样可以解决所有冒号的问题,并将它们移动到我想要的位置。我有大约50个sass文件在一个名为stylesheets
的目录中。如何一次性在所有文件上运行此命令?我不太确定如何在vim
中处理这个问题。也许和grep
有关?我不太清楚。
看这里:http://vimdoc.sourceforge.net/htmldoc/editing.html#:argdo
我刚学会了这个命令,但是帮助文件不够清晰。
接下来操作:
:args *.css
:argdo %s/\([[:alpha:]-]\+\):/:\1/ge | update
以下是一个示例
:bufdo %s/oldStuff/newStuff/ge | update
只需要根据你的需求修改你的正则表达式即可。
sed -i.old 's/:\([-a-z]*\)/\1:/' *.css
:vimgrep /^[^:]\w+/ %:p:h/* " find all of the lines that don't start with a colon
这将把所有匹配项放入您的快速修复列表中。
然后使用宏来完成您想要的操作。
qa
I:<esc>
f:x
:w|cn<enter>
q
然后测试那个宏几次(使用@a
)。
再创建另一个宏来反复运行那个宏...
qbq " this clears out b before starting, very important!
qb@a@bq
@b " watch in amazement. :)
argdo
命令,我打+1.bufdo
命令太笼统了。如果您不想更改全局参数列表,还可以使用:argl
在窗口中创建一个参数列表。 - Greg Sexton