遇到个问题,大家看看怎么办?

遇到个问题,大家看看怎么办?

把文件的内容
#ifdef WIN32
        SOCKET sock = abc;
#else
        int  sock = -1;
#endif
#ifdef WIN32
        SOCKET sock = def;
#else
        int  sock = -1;
#endif
变成
        SOCKET sock = abc;
        SOCKET sock = def;
用vim本身能实现么?
或者用grep能做到么?
grep "^S" file >newfile
[quote:9455a248ef="seamonkey"]grep "^S" file >newfile[/quote]
我晕。。

不是这个意思啦,目的是把WIN32之见的内容取出来,不一定是S开头的!
不明白。
我的表达能力,就这么有问题
说白了,只保留对win32这个定义有效的代码段。。这样说,明白了么?
grep -v "^#"

grep "^[^#]"

??
算了,还是让别人来解决吧。。。
我那段程序,看来你没看懂啊。。
那么我再来理解一遍

unifdef可以满足你要求吗。

应该是unifdef -DWIN32
最新想出的解决方法
:%s/#ifdef WIN32\_s\(\_.\{-}\)\_s\(#endif\|#else\_.\{-}#endif\)/\1/g