繁体   English   中英

在Visual Studio和VIM中实施编码样式

[英]Enforcing coding styles in Visual Studio and VIM

我与一个中等规模的开发人员团队一起工作,其中一半是在Ubuntu上使用VIM的 Linux开发人员,在OSX上是MacVIM的开发人员,另一半是使用Visual Studio 2010或更高版本的Windows开发人员。

过去,由于混合行尾或因硬标签和空格键(有时长度不同,即:4个空间对2个空间对8个空间,等等),我想结束它。

该计划是为了适应我们设计的通用编码样式,该样式几乎与Linux Kernel编码样式相同。 对于所有开发人员,我们可能要求他们通过Linux内核开发人员使用的checkpatch.pl脚本运行其代码,但是我们的代码包括C,C ++和C# ,因此我们需要推广规则检查器脚本,而不仅仅是ANSIC。

有没有一种通用的方法可以为VIM实现规则集,而另一种可以为Visual Studio实现规则集? 我们想生成一个检查整个文件的脚本,该脚本可以挂接到我们的版本控制系统中,以便在提交完成之前就可以在代码上运行,或者可以作为一个运行时脚本来强制编码者键入样式。

谢谢。

运行时“脚本”是最好的第一道防线。 在这种情况下,将使用各种Vim和Visual Studio设置来帮助实施您的代码样式。 仅此一项就会遇到很多问题。 请记住,这不会涵盖所有内容,但是会鼓励您想要的编码样式。

之前,我曾在一个团队中研究过Linux和Visual Studio(有时是我一个人)。 整个“制表符/空格”问题使我发疯,因为可能会有成组的行被完全转移或转移得不够。 为了解决这个问题,我最终在Vim中使用了这三个设置(在Visual Studio中也设置了类似的值),从而从根本上抓住了一类问题。

Vim

set expandtab
set shiftwidth=4  " Mainly for if/for/while/general {} block indentation.  4 spaces.
set softtabstop=-1 " Allows us to use the Tab key and have it act like shiftwidth.

视觉工作室

  • 按Tab键时插入空格。
  • 在代码块内缩进4个空格

他们的关键是摆脱制表符,或者至少让两个系统都使用相同的设置(即,两个都使用具有相同值的制表符或用空格替换为制表符)

需要注意的事情:

  • 有人将文件从一个操作系统复制到另一个操作系统,然后将该文件签入该计算机上的SVN中。 SVN将盲目地提交来自UNIX系统的DOS行尾文件。 您只想在同一系统上签出/提交文件。 否则,在同一操作系统上全部签出/编辑/提交文件应该不会出现问题,因为SVN可以在签出时转换行尾。 您可以通过将文件加载到Vim中,然后通过输入“:set fileformat = dos”(如果要更改为Windows风格),“:set fileformat”,将行尾转换为所需的特定操作系统来“修复”此问题。 = unix”(对于Unix样式),或者对于Mac,最后是“:set fileformat = mac”。

就您可能已经知道的代码风格而言,Vim和Visual Studio都提供了很多灵活性。 虽然我无法为您提供Vim的特定设置,但可以查看的选项是

autoindent
cindent
cinoptions  (implied from cindent)
cinkeys     (implied from cindent)
comments    (default is probably fine, but here for thoroughness)

所以,你会想要

set autoindent

和cindent在编辑C或C ++文件时应自动设置。 cinoptions和cinkeys的默认设置对我来说还可以,但是过去我在与其他团队合作时对其进行了调整。

不要忘记在选定的行范围内使用'='命令来重新格式化代码! 这可能非常方便!

我避开了全自动SVN后端方法,因为它可能花费比您期望的时间更长的时间来解决问题,并且当它变糟时,一天中可能会花费比您预期更多的时间。 毕竟,您真的只是想提高工作效率,对吧?

提前纪律是关键!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM