每次按Tab键都可以很容易地设置文本编辑器以使用空格或制表符。但是,我正在处理由我公司的大型开发人员团队维护的Python代码,有些人使用空格,有些人使用标签。我不能简单地让它们全部相互符合,因为1)它会破坏git责备,2)它会混淆git diff,3)它将不可避免地在下次其他编辑器击中其中一个的Tab键时打破构建文件。
相反,我想要一个文本编辑器,它可以自动确定文件是按空格或制表符缩进,然后是否符合现有布局。有人知道这样的事情是否存在?
答案 0 :(得分:6)
Sublime Text这样做。
答案 1 :(得分:1)
如果你使用linux,我认为geany(http://www.geany.org/)在首选项中有这个选项。
答案 2 :(得分:1)
对于Emacs,有guess-style。
答案 3 :(得分:0)
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