重复插入行的最快方法?

时间:2014-10-29 11:08:27

标签: text-editor

我要做的是在#ifdef之前和之后添加#endifputs。 代码中有数百个puts。 put中的字符串在每种情况下都是不同的。我正在使用像vim和sublime text 2这样的文本编辑器解决这个问题。

有没有更明智的方法来完成这样的任务?

                                     #ifdef SOMETHING
puts("blah blah blah");    ========>     puts("blah blah blah");
                                     #endif

1 个答案:

答案 0 :(得分:2)

Sublime Text:

<小时/> AFAIR你可以在ST中使用多个游标功能,如:
&#34;&gt; find_all&lt;,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;

<小时/> 我把它写成了我的头脑所以请考虑到有些事情可能需要更正(ST中的快捷方式或在substitute公式中转义某些字符)。
感谢您理解