C++代码自动格式化

C++ Code Autoformatting

本文关键字:格式化 代码 C++      更新时间:2023-10-16

在使用Visual Studio进行C++编程多年后,我现在正转向linux进行工作。到目前为止,一切都很顺利,只有一个小例外——格迪特。在基本的文本编辑器中编写了一些代码后,我真的开始怀念我已经习惯的自动格式化功能

有没有某种类型的"程序员记事本"可以帮助实时自动格式化,或者我必须使用标准IDE来实现这一功能?大多数linux开发人员是否使用基本的文本编辑器手动格式化代码?

我不是在寻找一个完整的IDE,只是一个可以在我打字时自动格式化C++代码的东西。

Linux上的IDE有相当广泛的文本编辑器。从最"像记事本"到最"像VS",我脑海中浮现出一些。

在"文本编辑器"部门(意味着没有集成编译、构建配置、调试器等。只编辑文本/代码):

  • gedit(最基本的类似记事本的应用程序,IMO)
  • Kate(增强型记事本,但没有"命令",具有良好的自动格式和突出显示)
  • Emacs(带有命令和高级选项的增强型记事本可能很难使用)
  • VIM(与emacs属于同一类别,可能很难使用,我不喜欢)
  • Sublime text(很酷的增强型文本编辑器,有很多整洁的功能,但也有点难以掌握)

在IDE部门(意味着一些构建工具集成,通常还有一些代码完成和代码的语义分析(检测变量、类等,可以为它们链接到dox):

  • Geany(轻量级IDE,不过是一个带有"构建"按钮的增强型文本编辑器)
  • NetBeans(IDE大小一般,质量一般,IMO)
  • Eclipse(中等大小的IDE,易于使用,即适合小型项目,例如学校作业)
  • Qt Creator(一般到大型IDE,主要用于处理Qt)
  • 代码::块(IDE大小一般,质量一般但还可以,IMO)
  • KDevelop(一个IDE有点重,但总体功能很好,代码完成度是我见过的最好的,它像租来的骡子一样胜过Intellisense for C++)

当然,这只是一个部分列表,只包括那些我接触过或听过很多的人。可能还有很多其他的。

有没有某种类型的"程序员记事本"可以帮助实时自动格式化,或者我必须使用标准IDE来实现这一功能?

我上面在"文本编辑器"部门列出的所有应用程序都支持这种功能(但我不能100%确定Gedit,因为它有点基础,我不太使用它,因为我不喜欢它)。从文本编辑器到IDE编写代码的唯一主要飞跃是代码完成/后台解析器,即"Intellisense"类型的功能,包括关于类或函数的工具提示文档。你不能在文本编辑器中获得它,因为它必须了解你的构建配置(例如,你的cmake文件或等效文件),才能知道从哪里提取头,才能"理解"你的代码,而不仅仅是琐碎的语法规则、关键字和缩进。

大多数linux开发人员是否使用基本的文本编辑器手动格式化代码?

没有。但这是一个多样化的世界。有些人喜欢基本的文本编辑器,其中的自动缩进与您获得的一样多,而另一些人更喜欢功能丰富的IDE,还有一些人根据颜色主题的外观来选择他们的文本编辑器。)

顺便说一句,还有非常强大的命令行代码格式化程序,如clang format,它可以以更智能的方式重新格式化代码,因为它有一个真正成熟的C++编译器前端来解析代码。

据我所知,gedit支持自动缩进,请尝试编辑->首选项->编辑器并选中"启用自动缩进"。

然而,就我个人而言,我建议你使用VIM,一个专业的文本编辑器,尽管它并不适合所有人。Vim不是一个IDE,只是一个文本编辑器,但它非常强大。

如果vim目前看起来太多了,我认为kategedit更好。