将整个 (Python) 文件从 2 空格缩进转换为 4 空格缩进

问题描述 投票:0回答:1

我经常使用作为模板提供给我的 Python 文件,这些文件使用 2 的缩进。但是,我个人更喜欢使用 4 的缩进宽度,这是我在

.vimrc
中设置的。然而,由于 Python 的缩进敏感性,将缩进固定为我首选缩进宽度的典型
gg=G
方法根本无法很好地将文件转换为我首选的缩进。此外,只需在我的制表位设置中留下 2 个螺钉宽度的压痕即可。

为了解决这个问题,我想做的是有一些系统将 2 空格缩进文件转换为 4 空格缩进文件。我不知道最简单的方法是什么,但我想

vmap <Tab>
将所选行的制表符宽度增加 1,并
vmap <S-Tab>
将宽度减少 1。我不这样做不知道是否有一些内置方法可以做到这一点,或者这是否需要一些查找/替换规则,但我认为有一些方法将缩进固定为我的首选宽度会很有用,因为自动缩进并不智能足以正确解决此问题。

python vim indentation auto-indent
1个回答
0
投票

由于您使用空格(而不是制表符)作为缩进,因此似乎您只需将每行上的前导空格数加倍即可。

您可以使用

ggVG
选择整个文件。按 : 将输入一些默认值,从那里您可以添加
s/^(\s*)/\1\1
到行中的双前导空格。

正则表达式解释:

^
表示行的开头。
(\s*)
是包含任意数量空格的捕获组。
\1
指的是该捕获组,
\1\1
表示重复该组两次。

TL;博士:

ggVG=:s/^(\s*)/\1\1

© www.soinside.com 2019 - 2024. All rights reserved.