如何在大型python代码库中用一个选项卡替换四个空格?

如何在大型python代码库中用一个选项卡替换四个空格?,python,tabs,coding-style,space,Python,Tabs,Coding Style,Space,我已经下载了一段python代码,并想对其进行编辑。问题是,我以前使用制表符进行缩进,但文件使用四个空格,如果使用空格和制表符的组合,在视觉上看起来不错,但代码会产生错误 我的问题是,是否有一种用制表符替换空格的简单方法?获得一个理解模拟制表符的编辑器。然后,它将使用4个空格模拟选项卡。现在大多数编辑都能做到这一点。它们感觉就像标签,但却是空格 使用reindent.py。它应该在系统的工具/脚本中。在某些情况下,默认情况下可能不会安装它,并且需要添加额外的包,例如:python示例或pytho

我已经下载了一段python代码,并想对其进行编辑。问题是,我以前使用制表符进行缩进,但文件使用四个空格,如果使用空格和制表符的组合,在视觉上看起来不错,但代码会产生错误


我的问题是,是否有一种用制表符替换空格的简单方法?

获得一个理解模拟制表符的编辑器。然后,它将使用4个空格模拟选项卡。现在大多数编辑都能做到这一点。它们感觉就像标签,但却是空格

使用
reindent.py
。它应该在系统的工具/脚本中。在某些情况下,默认情况下可能不会安装它,并且需要添加额外的包,例如:python示例或python工具。

您有几个选项:

  • 使用可配置为使用制表符或空格缩进并根据需要重新配置的编辑器,或者任何其他甚至是中等程度的代码编辑器都可以做到这一点。
    此外,如果编辑器支持,请打开初始空白的显示
  • 在linuxes/unices上,您有多个命令行工具来帮助您进行转换。看看你的答案就知道了

  • 在Vim中有命令retab。我的vimrc中有一行:

    nnoremap <F7> :set noexpandtab!<CR>
    

    如果您使用vim-spacehi.vim,这是一个非常有用的插件。此插件将突出显示一行中的制表符和尾随空格,并能够打开和关闭突出显示。

    如果您正在使用GNU/Linux或MacOSX和bash,则可以在命令行中使用此插件:

    find . -type f -name '*.py' | while read file; do
         grep '    ' $file > /dev/null && sed -ie 's/    /\t/g' $file
    done
    

    大多数理解这一点的编辑器也可以根据某种规范“格式化代码”。包括更改缩进样式。获得一个好的编辑器或IDEthank@williampersell:)尽管expand不会将空格转换为制表符?它还将转换所有选项卡,而不仅仅是前导空格。但是一个不错的工具。unexpand将是将空格转换为tab的工具。显然unexpand(仅限第一个)tabs=4也可以实现这一功能。
    find . -type f -name '*.py' | while read file; do
         grep '    ' $file > /dev/null && sed -ie 's/    /\t/g' $file
    done