是否有文本编辑器会自动确定是否缩进空格或制表符?

时间:2009-11-09 21:38:20

标签: python editor tabs indentation spaces

每次按Tab键都可以很容易地设置文本编辑器以使用空格或制表符。但是,我正在处理由我公司的大型开发人员团队维护的Python代码,有些人使用空格,有些人使用标签。我不能简单地让它们全部相互符合,因为1)它会破坏git责备,2)它会混淆git diff,3)它将不可避免地在下次其他编辑器击中其中一个的Tab键时打破构建文件。

相反,我想要一个文本编辑器,它可以自动确定文件是按空格或制表符缩进,然后是否符合现有布局。有人知道这样的事情是否存在?

6 个答案:

答案 0 :(得分:6)

Sublime Text这样做。

答案 1 :(得分:1)

如果你使用linux,我认为geany(http://www.geany.org/)在首选项中有这个选项。

答案 2 :(得分:1)

对于Emacs,有guess-style

答案 3 :(得分:0)

Mac的

TextMate就是这样做的。

我确信vim和emacs都有脚本。

答案 4 :(得分:0)

你可以在vim中这样做。 codeblog中的此功能显示了如何检测文件的普遍格式,并将默认值设置为匹配:

function Kees_settabs()
    if len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^\\t"')) > len(filter(getbufline(winbufnr(0), 1, "$"), 'v:val =~ "^ "'))
        set noet ts=8 sw=8
    endif
endfunction
autocmd BufReadPost * call Kees_settabs()

就我个人而言,我只会以2比4的方式进行操作,然后让任何开发人员使用标签进行一些攻击。

答案 5 :(得分:0)

vim可以做你想做的事。 vim几乎可以做任何事情。

以下是为Python自定义vim的一个很好的方法: http://henry.precheur.org/2008/4/18/Indenting_Python_with_VIM.html

编辑:实际上,我只是玩弄了这个,这是一个简单的方法。将这两行添加到vim设置文件中:

filetype on
autocmd FileType python set smarttab expandtab