如何在文件中的VIM中进行后验更改/重新定义缩进或移位宽度?

Jan*_*Jan 2 python vim

我想更改所有现有(!)Python文件中的缩进,从移位宽度(sw = 2)到sw = 4.有什么建议如何在vim中这样做?

Nik*_*vda 6

请注意,:set ts=4 sw=4如果您使用硬标签(即noexpandtab),单独就足够了,但我认为情况并非如此.但是,通过临时设置,仍然可以使用此功能noet:

:set noet | retab! | set ts=4 sw=4 et | retab
Run Code Online (Sandbox Code Playgroud)

这会将现有空格转换为制表符,更改每个制表符的空格数,并还原为空格.请注意,这retab可能会影响文件中其他位置的空间序列.

也可以手动替换每对前导空格的两倍:

:%s/^\(\(\s\{2}\)\+\)/\1\1/g
Run Code Online (Sandbox Code Playgroud)

不过,这种方法并不通用.