跨平台C / C ++ IDE CLion的10个提高生产力的技巧

大家好!

在我们的第一批课程“ C ++ Developer”发布之前,只剩下几天了。 结果,我们在课程中做了一个很好的工作:重新安排了作业,更新了语言版本,并在小事上做了更多的工作。 同时,我们继续保留有趣和有用材料的传统。

走吧

从他们自己的开发经验来看,许多C / C ++开发人员忽略了IDE可以使他们的工作更加高效的想法。 毕竟,这可能比简单快速的Vim或Emac更好。 好吧,让我示范一下。 这10条CLion技巧将带您进入新的生产力水平,帮助您专注于重要和复杂的任务,而IDE将为您解决常规任务。

在开始之前,让我们了解CLion,它是由JetBrains创建的用于C和C ++开发的新的跨平台IDE。 它本身支持C和C ++,包括C ++ 11标准(有一些小的限制),libc ++和Boost。 它可以正确处理宏和模板,还可以与GCC或Clang一起使用(使用Windows时,您将需要MinGW / MinGW-w64或Cygwin),GDB作为内置调试器,以及CMake作为构建系统和设计模型。 除了C / C ++,您还可以在相同的代码编辑级别上使用JavaScript,XML,HTML和CSS,例如,语法突出显示,分析,自动完成,导航和重构。


1.智能自动补全功能知道您的需求

首先,我们都需要一个编辑器。 代码完成非常重要:我们只需要输入一个字符(变量,函数,类型,类名),编辑器就会为我们显示合适的句子列表。 很简单,但是我们真的需要下面示例中描述的所有选项吗?



通常,我们只需要idPlayer *类型的东西。 这正是CLion的智能自动完成功能所显示的! 它根据代码的上下文自动过滤句子:



哦,是的,如果只找到一个可能的选项,它将立即被使用!

2.立即使用;以后再确认

当一个好主意出现时,您不会觉得自己在无聊的例行工作上浪费了时间。 假设您使用的功能尚未实现,甚至尚未定义。 CLion以红色突出显示。 我需要立即徘徊以执行该功能吗? 一点都不! 要求CLion生成存根,然后稍后返回此点。 只需按Alt + Enter:



声明和定义将立即出现在您的代码中:



变量和类名的工作方式相同:



3.您喜欢或最常用的代码片段的实时模板

如何仅输入几个字符就获得循环或范围迭代(C ++ 11风格)? 输入并按Tab即可循环播放; 或键入iter或itit,然后按Tab:



经过仔细检查,结果发现您可以在Clion中创建自定义的Live模板或“ Surround With”模板(它们将所选代码快速包装在构造中)。 我们展示了一个如何通过继承另一个现有类的方法快速获取一个类的示例:



添加新的“ cp”模板后,可以在编辑器中输入cp:



可以在自动完成的下拉列表中立即看到模板的描述。 当您按Tab时,模板将展开。 现在,您可以添加一个新的类名称,然后从自动完成列表中为其选择父类和修饰符:



瞧! 新课程准备就绪。



当然,您可以生成更复杂的模式,包括$ SELECTION $变量以获得“ Surround With”模式。

4.遵循分层视图

与编写代码相比,开发人员阅读代码的频率更高。 在添加新代码或更新现有代码之前,需要对现有代码库进行深入而详细的研究。 (只有在不从头开始的情况下才可以启动项目,这种情况很少见。)在许多情况下,生产率取决于您能以多快的速度获得代码库。
对于此类情况,CLion提供了广泛的代码导航选项:

  • 使用标准的goto声明/定义工具
  • 快速跳转到相应的符号,最近的文件或您上次编辑的位置;
  • 按名称搜索任何类,文件或符号;
  • 在“查找用法”中使用上下文搜索;
  • 使用“文件结构”视图浏览当前文件。
  • 受益于几个层次结构视图,包括“呼叫层次结构”,“类型层次结构”和“导入层次结构”。

呼叫层次结构是我的最爱。 它允许您详细查看带有分支的整个调用堆栈。 看起来很简单,不是吗? 只需单击一下,您便可以移至编辑器中的正确位置,并在Source中使用自动滚动,可以使过程更快:



5.更改顺序并添加参数-IDE将负责使用

重构是一个功能强大的过程,可帮助改进代码,使其更简洁,更方便。 某些IDE提供了数量有限的自动化方法。 CLion中有很多功能-从简单且流行的重命名到复杂的更改签名,提取功能或类,内联等等。 您可以依靠CLion,在进行重构更改时将保留代码的正确性。

让我说明一下CLion的可靠性。 假设有一个函数:



要向此函数添加新参数,我将使用“更改签名”重构:



顺便说一下,由于代码完成,在此窗口中添加新类型的参数非常容易。 单击“重构”后,Clion更​​新签名和所有使用,替换该类型的默认值,在这种情况下为nullptr:



但是,如果我决定在更改签名期间订购参数怎么办? 当然,他们的订单将根据所有用途进行更新:



6.提取很多选项

将一段代码提取到一个单独的函数中是一种流行的重构方法,但是其他方法又如何呢? 例如提取Typedef,定义,变量,参数甚至子类? 小而有用的细节增强了他们在CLion方面的经验。 例如,您可以在提取常量或变量时更改所有出现的事件(如果不止一次)。 声明一个常量或静态参数; 检索变量时使用自动类型; 依此类推:



7.未使用的代码? “ =”情况如何? 没问题!

遵循墨菲的计算机法则,每个不平凡的程序都至少存在一个错误。 但是,让我们尽力而为,并尽可能多地修复它们。 当我们尝试本地化并希望修复错误时,CLion会不断监视您的代码中是否存在潜在错误。 在编辑器中对代码的任何可疑部分都加了下划线,并提供了可能的快速修复选项。 要查看它们,只需按Alt + Enter。 IDE还进行了完整的数据流分析,以识别未使用和不可访问的代码:



CLion不会错过普遍存在的C / C ++错误,例如,条件中的“ =”:



该助手在您键入时起作用,从而无需在项目上运行其他代码分析工具。

8.调试简单,可以直接在编辑器中查看变量的值!

与简单的文本编辑器相比,IDE的主要优势是调试体验。 当然,您可以启动一个单独的调试过程,但是在IDE内进行调试可以节省大量时间并提供其他有用的功能。

CLion集成了GDB后端,提供了界面中所需的一切,并且
使用一些非常有用的工具改善调试体验。 例如,每次输入变量名进行查看或对表达式进行求值时,都可以利用代码完成功能。 在工具的单独窗口中,显示了程序当前状态的所有详细信息。 这是大功告成:在调试期间,IDE在变量的声明旁边显示变量的值:



9.在调试过程中改变主意吗? 不要重启-立即更改变量的值!

调试的价值在于理解数据并控制它们在程序中的移动。 有时有必要检查一个变量的多个值,例如跟踪一个单独的执行分支。 无需浪费宝贵的时间来重新启动-立即更改当前调试会话中的值:



现在,我们可以继续相同的会话,但是将新分配的y值设置为55。如前所述,IDE在编辑器中的变量声明旁边显示变量的值,着重于应用的更改:



10.船上所有必需的工具-无需切换!
IDE代表集成开发环境,它的使用意味着您在工作中将不再需要在多个工具之间进行切换,例如,单独的vcs应用程序,浏览器中的错误跟踪器或终端。 所有这些工具已经内置在CLion IDE中,因此您可以将精力集中在代码上,而不会产生太多干扰。

在CLion中尝试这些技巧,并确保它们可以帮助您提高效率和生产力!

结束

与往常一样,我们在这里等待问题,评论或开放日

Source: https://habr.com/ru/post/zh-CN412609/


All Articles