c++ - 从整个代码库中删除特定过时代码行的方法?

标签 c++ visual-studio-2010 visual-studio code-formatting

我有一些代码:

#if SILOG
    SiAuto.Main.LogException(ex);
    // some other lines
#endif

从我的整个代码库中删除周围的#if 的最简单方法是什么,即最终只得到:

SiAuto.Main.LogException(ex);

我使用的是 Visual Studio 2010。我会接受第一个答案,我可以测试它是否有效。期待您的想法!

最佳答案

假设您的代码库都在一个解决方案文件中,并且您没有嵌套的预处理器指令,您可以执行查找并用正则表达式替换:

\#if SILOG{(.*\n)@}\#endif

对于替换字符串,使用这个:

\1

确保已使用“正则表达式”查找选项已选中。

一步一步:

  1. 打开查找和替换对话框 (ctrl+H)
  2. 在“查找内容:”下,输入“#if SILOG{(.*\n)@}#endif”(不带引号)
  3. 在“替换为:”下,输入不带引号的“\1”
  4. 在“查找范围”下,选择“整个解决方案”
  5. 展开“查找选项”
  6. 选中“使用:”并从组合框中选择“正则表达式”
  7. 点击“查找下一个”查看是否有效
  8. 如果您有勇气,请点击“全部替换”

但是,这不会修复 #if/#endif 之间的代码缩进。

关于c++ - 从整个代码库中删除特定过时代码行的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4309662/

相关文章:

C++线程开销

c++ - 应用于返回值的限制限定符在哪些情况下会产生影响?

c# - 随机数表现怪异,不是完全随机的

visual-studio - Visual Studio 托管流程的目的是什么?

c# - Visual Studio 调试器未进入 .NET 框架源代码

c++ - std::hash 特化使用 sfinae?

visual-studio - 如何在 Visual Studio 2010 中禁用智能感知建议模式

visual-studio-2010 - 调试时在属性集中查找差异

c# - 如何一次性安装所有缺少的程序集和 Nuget 包以及依赖项 - Visual Studio 2017?

c++ - 在 C++ 中使用::限定的命名空间