我想要做的是在puts
之前和之後添加#ifdef
和#endif
。 代碼中有數百個puts
。 put中的字符串在每種情況下都不相同。我正在用vim和sublime text 2等文本編輯器處理這個問題。反覆插入行的最快方法?
有沒有更智能的方法來完成這樣的任務?
#ifdef SOMETHING
puts("blah blah blah"); ========> puts("blah blah blah");
#endif
我想要做的是在puts
之前和之後添加#ifdef
和#endif
。 代碼中有數百個puts
。 put中的字符串在每種情況下都不相同。我正在用vim和sublime text 2等文本編輯器處理這個問題。反覆插入行的最快方法?
有沒有更智能的方法來完成這樣的任務?
#ifdef SOMETHING
puts("blah blah blah"); ========> puts("blah blah blah");
#endif
崇高文字:
puts
,然後
ctrl+shift+l
(或類似的東西,這將給你個人光標每突出顯示的行),然後去鍵入所需的修改(這將爲每行完成相同的移動/打字)「
當然,它不適用於不同的縮進和東西,我怕......
VIM:
substitute
它看起來應該或多或少是這樣的:
:%s/puts(.\{-});/#ifdef SOMETHING\n &\n#endif/g
(雖然林不知道,如果事情就不會在這裏需要轉義)
基本上就意味着:
%
- 對整個文件
s
- 替代
/first_part/second_part/
- 全球 - - 與second_part
g
的first_part
替代occurence意爲間%
(整個文件)中找到的每個線
和第一部分是:
正常: '放(',則非貪婪(如果你不知道這意味着什麼 - 谷歌爲它,真的值得了解)任何字符的正則表達式,然後正常:');'這應該符合您放
和第二:
正常:‘SOMETHING的#ifdef’,然後換行,然後四個空格,然後&
這意味着‘發現模式’(基本上這puts
你的),然後換行,然後正常:'#endif'
substitute
公式中轉義某些字符)。
您是否在vim中嘗試過'substitute'命令?或者更好的'sed'工具? – 4rlekin 2014-10-29 11:10:16
感謝您的線索,我會先谷歌他們 – RNA 2014-10-29 11:15:06
如果'puts'都是單行表達式,那麼你可以在Notepad ++中做這樣的事情(我也假設在ST2中)...找到'(^ puts *)'並用'#ifdef \ r \ n \ t \ 1 \ r \ n#endif'全部替換。如果使用Notepad ++,請不要忘記啓用正則表達式模式。 – jbaums 2014-10-29 11:18:57