在Vim中如何处理代码缩进?

4

我在一个由4个人组成的工程团队中工作,主要编写JavaScript代码,偶尔也会涉及Ruby和Python。因此,作为一个团队,我们经常分享代码,就像大多数程序员一样,每个团队成员都有自己喜欢的缩进级别和相关设置。我是团队中使用Vim作为主要代码编辑器并且热爱它的2名成员之一。我非常喜欢我的团队,但我也非常喜欢我的缩进方式,它使用4个空格作为制表符。为了更好的理解,以下是我在.vimrc文件中使用的内容:

set ts = 4 sts = 4 sw = 4 expandtab " 4 space tabs

在团队中进行大量代码共享和协作编辑后,主要代码文件通常会出现混乱的制表符和空格,即使使用经典的Vim技巧选择全部内容并按下=智能缩进,也没有太大效果。

无论如何,我的问题是:在Vim(特别是MacVim)中,有没有更好(更可靠)的方法将代码文件从杂乱的混合缩进转换为我喜欢的缩进方式?无论是通过.vimrc设置还是在编辑文件时输入的命令,我都不在意。

提前感谢任何建议!

2个回答

11

使用:retab命令。

尽管如此,我强烈建议您在团队协作开发某个项目时,达成一致并使用相同的缩进风格。


1
+1. 在这里妥协是很重要的。即使不是每个人都喜欢,但如果每个人都同意某件事情,那会更好。 - Daenyth
太好了,我不知道这个,谢谢你。它在我的Python文件中消除了近1000个PEP8违规错误。 - J Bourne

1

我们有一个使用JavaScript和Ruby的相同案例。

autocmd FileType * set tabstop=4|set shiftwidth=4
autocmd FileType ruby set tabstop=2|set shiftwidth=2
set expandtab

我发现对于 JavaScript,我喜欢使用 4 个空格,但对于 Ruby,2 个空格看起来更好。

我同意 Yaser 的观点,你需要设置标准(空格胜出)

一旦你决定摆脱所有的 Tab 字符,使用 grep 查找文件然后进行 :retab。

grep -P '\t' * -R -c

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接