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

时间:2013-01-23 11:28:41

标签: python vim

我希望将所有现有(!)Python文件中的缩进从移位宽度(sw = 2)更改为sw = 4。有关如何在vim中执行此操作的任何建议吗?

4 个答案:

答案 0 :(得分:6)

请注意,如果您使用硬标签(即:set ts=4 sw=4),仅noexpandtab就足够了,但我认为情况并非如此。但是,通过临时设置noet

,仍然可以使用此功能
:set noet | retab! | set ts=4 sw=4 et | retab

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

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

:%s/^\(\(\s\{2}\)\+\)/\1\1/g

但这种方法并不是通用的。

答案 1 :(得分:2)

这不是解决问题的最佳方案,但对于一个文件,您可以重新整理整个文件(如果您配置了缩进规则以符合您的口味):

Shift + V Shift + G =

答案 2 :(得分:0)

如果您只使用了硬标签(未与空格混合使用),请尝试在您的vimrc文件中将tabstop和shiftwidth都更改为4

还可以尝试查看http://vim.wikia.com/wiki/Indenting_source_code以获得更多有关缩进的帮助

答案 3 :(得分:0)

要缩进缩进,可以使用命令

:%s/^\s*/&&/