我要做的是在#ifdef
之前和之后添加#endif
和puts
。
代码中有数百个puts
。 put中的字符串在每种情况下都是不同的。我正在使用像vim和sublime text 2这样的文本编辑器解决这个问题。
有没有更明智的方法来完成这样的任务?
#ifdef SOMETHING
puts("blah blah blah"); ========> puts("blah blah blah");
#endif
答案 0 :(得分:2)
Sublime Text:
<小时/> AFAIR你可以在ST中使用多个游标功能,如:puts
,然后是ctrl+shift+l
(或类似的东西,它会为每个突出显示的行提供单独的光标),然后进行类型所需的修改(将执行完全相同的运动) /输入每一行)&#34;
当然,对于不同的缩进和东西,它不会很好地工作,我害怕......
<强> VIM:强>
<小时/> 在substitute
中,它应该或多或少看起来像这样:
:%s/puts(.\{-});/#ifdef SOMETHING\n &\n#endif/g
(虽然我不确定某些事情是否需要逃避)
基本上意味着:
%
- 对于整个文件
s
- 替代
/first_part/second_part/
- 用first_part
替换second_part
的出现
g
- 全局 - 意味着在%
(整个文件)中找到的每一行
第一部分是:
正常:&#39;放(&#39;,然后非贪婪(如果你不知道这是什么意思 - 谷歌为它,真的值得知道)任何角色的正则表达式,然后正常:&#39 );&#39;这应该与你的看跌期权相匹配
和第二:
normal:&#39; #ifdef SOMETHING&#39;,然后是换行符,然后是四个空格,然后是&
,这意味着找到了&#39; (基本上是你的puts
),然后是换行符,然后是正常的:&#39; #endif&#39;
substitute
公式中转义某些字符)。