[英]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实现规则集? 我们想生成一个检查整个文件的脚本,该脚本可以挂接到我们的版本控制系统中,以便在提交完成之前就可以在代码上运行,或者可以作为一个运行时脚本来强制编码者键入样式。
谢谢。
EditorConfig似乎可以完全满足您在Vim , Visual Studio和许多其他编辑器和IDE中的要求 。
运行时“脚本”是最好的第一道防线。 在这种情况下,将使用各种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.
视觉工作室
他们的关键是摆脱制表符,或者至少让两个系统都使用相同的设置(即,两个都使用具有相同值的制表符或用空格替换为制表符)
需要注意的事情:
就您可能已经知道的代码风格而言,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.