我有一个相对较大的代码库,希望对整个代码进行类似的更改。
我有一堆这样的行
$options = new Options();
我想用
$options = Options::getInstance();
但在某些地方我有
$options = new Options('alternate_options_file.txt')
那些,我想一个人离开。
此外,我希望将来会有更多这样的变化。
我想要一些方法来在代码库中进行这种更改,而无需手动接触每个文件。在这种情况下,我可以轻松地制作一个正则表达式来只捕获我想要的那些。但是肯定会有更复杂的版本出现。我想要一个通用的解决方案,它可以让我:
- 找到一组可能的位置来改变
- 包括或排除其中一些
- 在我指定的地方自动进行更改。
(我记得使用过 resharper,它会向您显示将要更改的所有位置的列表,并让您包含/排除它们。但现在我正在研究 PHP,我想做一些替换而不是纯粹的重构。)
现在,我最好的选择似乎是ack
在 vim 内部使用,记录一个宏,然后:cnext
在适当的情况下使用和应用宏。不过可能有更好的选择。