将Python文件重新格式化为4个空格缩进
我正在编辑一个Python文件,这个文件使用两个空格来进行代码缩进,而我更喜欢用四个空格。在我的.vimrc文件里,有一些和缩进相关的设置:
set tabstop=4 "Indentation levels every four columns
set expandtab "Convert all tabs typed to spaces
set shiftwidth=4 "Indent/outdent by four columns
set softtabstop=4
我该怎么做才能让Vim把所有现有的两个空格缩进转换成四个空格缩进呢?
换句话说:
if something:
dothis()
要变成
if something:
dothis()
当我尝试使用gg=G时
def check():
for a in list:
for b in list2:
check(a, b)
while (len > MAX) :
poll()
while(len(thelist) > 0) :
poll()
return results
变成了
def check():
for a in list:
for b in list2:
check(a, b)
while (len > MAX) :
poll()
while(len(thelist) > 0) :
poll()
return results
7 个回答
5
现在最好的方法来重新格式化Python代码,解决很多其他问题,并确保它符合PEP8标准,就是使用autopep8这个工具。你可以查看这个相关问题。在你安装了autopep8之后(比如用命令pip install autopep8
),在vim中你可以这样操作:
:%! autopep8 -
另外,还有一个vim-autopep8插件,可以让这个过程变得更简单。
18
按下 gg=G
这个命令可以重新调整文件中所有内容的缩进。如果文件里有其他可以调整缩进的元素,vim 也会一起调整它们的缩进,但这样不一定能达到你想要的效果。如果调整后看起来不太好,你就得手动去修整一下。
另外,你也可以使用 >
命令来调整缩进,这样可以更高效地手动处理文件中的某些部分。比如,输入 99>k
就会把光标下面的99行向右缩进一个级别。
49
为了在每一行的开头增加两倍的空格(只在开头增加):
:%s/^\s*/&&/g
&
在替换的模式中代表的是你匹配到的内容。
这可能对你没有任何副作用。