2

在 vim 中,我设置了 shiftwidth=2,但我之前的所有缩进仍然是默认的 8。如何将之前的缩进从 8 更改为 2?

4

3 回答 3

3

您可以使用 重新缩进整个文件gg=Ggg转到第一行,=缩进(采取运动),G转到最后一行。

于 2012-04-10T17:05:40.747 回答
0

如果你正在使用set expandtab(就像你应该的那样),你可以修改文件中的缩进

:%s/^ */  /

这些设置会影响如何进行更改,但它们本身并不会对文件进行更改。

于 2012-04-10T17:21:11.647 回答
0

如果您的原始缩进是使用硬制表位实现的,那么您可以做的一个技巧就是这个。将硬制表位设置为 2:

:set ts=2

现在您有了两个空格的缩进(但使用硬制表符实现)。

现在,做

:retab 8

这意味着,粗略地,将硬制表符大小更改为 8(就像 by:set ts=8一样),但同时编辑缓冲区中的所有制表符,以便缩进的外观不会改变。

所以现在缓冲区仍然缩进两个空格,但现在:ts又回到了 8。

如果你已经:expandtab设置,那么缩进现在是所有空格,否则它是 8 个空格制表符和空格的组合。

即使这不适用于您的情况,retab也很高兴知道,因为它对于处理使用硬制表符并且您希望同时转换为使用空格 不同缩进级别的源非常方便。

于 2012-04-11T01:47:46.163 回答