分页: 1 / 1

vi如何清除c风格的注释

发表于 : 2009-08-26 18:17
JiangMiao
有如下代码
/* foo */
void foo();
/*
* bar
*/
void bar();
void baz(); /* baz */
想替换成
void foo();
void bar();
void baz();
/*与*/之间无换行可用 :%s/\/\*.*\*\///g 替换,但无法替换注释'bar'
请问vi该如何操作
谢谢

Re: vi如何清除c风格的注释

发表于 : 2009-08-26 18:36
JiangMiao
写了个ruby脚本替换了 :%!ruby -e 'puts STDIN.read.gsub(/\/\*.*?\*\/\s*/m,"");'
但还是清楚正统的vim解决方案是什么,要是每次都祭出ruby有点杀鸡用牛刀的感觉。

Re: vi如何清除c风格的注释

发表于 : 2009-08-26 19:56
sarrow
这个“\_.”代表包括换行符的任意字符。

楼主,你自己改改吧!

Re: vi如何清除c风格的注释

发表于 : 2009-08-26 20:39
JiangMiao
sarrow 写了:这个“\_.”代表包括换行符的任意字符。

楼主,你自己改改吧!
非常感谢,成功 :em11 :%s/\/\*\_.\{-}\*\///g

Re: vi如何清除c风格的注释

发表于 : 2009-08-27 8:40
hjjdebug
这样是否更好看一点 ?
%s#\M/*\m\_.\{-}\M*/##

Re: vi如何清除c风格的注释

发表于 : 2009-08-29 0:48
JiangMiao
hjjdebug 写了:这样是否更好看一点 ?
%s#\M/*\m\_.\{-}\M*/##
谢谢 :em11