我很擅长“为github项目做贡献”但很兴奋这样做,我想知道如何在为github项目做贡献的同时获得类似于现有缩进的缩进。例如,我使用VIM,我有自己的.vimrc文件,但是当我分叉然后克隆一个ruby项目来贡献时,我该如何使用相同的缩进。
答案 0 :(得分:2)
许多项目在文件底部的注释中都有:help modeline
个选项。例如,
# vim: noet
这些选项将覆盖〜/ .vimrc中的选项。项目维护人员经常将这些内容放在代码中以保持一致性。有些项目没有这些,但仍然符合一套规则。例如,他们可能使用制表符而不是硬空格。如果您使用硬空间并且正在为使用制表符的项目做出贡献,那么最好保持它一致。您可以通过多种方式实现此目的。一个例子是在你的vimrc中设置该项目的自动命令,如下所示
au BufRead,BufNewFile /path/to/project/** set noet
这样你就不会忘记坚持那个项目的愿望。另一种方法是手动设置它。您还可以将项目选项卡更改为硬空格,然后将其更改回来。例如,您可以
:retab!
将标签更改为您的偏好设置。然后,当您完成编辑后,您可以将设置更改回其首选项并执行另一项操作:
:set noet
:retab!
答案 1 :(得分:2)
您可以使用涂抹和清洁过滤器(请参阅this part of the Pro-Git book),并让过滤器执行更改用于缩进的制表符或空格所需的任何内容。这样你就可以使用你熟悉的任何东西,然后在提交时将其转换为上游版本。
答案 2 :(得分:2)
有几个插件可以检查打开文件的缩进,并且(如果需要)调整缓冲区的缩进设置。我自己的插件名为IndentConsistencyCop;插件页面还包含替代品的链接。这在向许多不同的项目提交补丁时特别有用,这些项目本身甚至可能没有一致的指导原则。
如果你正在深入参与一些项目,我推荐一些允许目录本地配置的插件。您只需将:setlocal expandtab tabstop=...
放入项目根目录的.lvimrc
文件中即可。我建议使用localrc.vim,因为它还允许特定于文件类型的本地配置。
答案 3 :(得分:0)
我在.vimrc文件中使用它:
set softtabstop=2
set shiftwidth=2
这会更改缩进设置。
如果您不想更改全局vim设置,则可能需要使用扩展名,例如。 http://www.vim.org/scripts/script.php?script_id=1408