Informações muito úteis para todos que usam o GitHub (ou outro serviço similar)
~/.gitconfig
[filter "tabspace"]
smudge = unexpand --tabs=4 --first-only
clean = expand --tabs=4 --initial
[filter "tabspace2"]
smudge = unexpand --tabs=2 --first-only
clean = expand --tabs=2 --initial
Então eu tenho dois arquivos:
attributes
*.js filter=tabspace
*.html filter=tabspace
*.css filter=tabspace
*.json filter=tabspace
e attributes2
*.js filter=tabspace2
*.html filter=tabspace2
*.css filter=tabspace2
*.json filter=tabspace2
Trabalhando em projetos pessoais
mkdir project
cd project
git init
cp ~/path/to/attributes .git/info/
Dessa forma, quando você finalmente empurra seu trabalho no github, ele não parecerá bobo na visualização de código com 8 space tabs
o comportamento padrão em todos os navegadores.
Contribuindo para outros projetos
mkdir project
cd project
git init
cp ~/path/to/attributes2 .git/info/attributes
git remote add origin git@github.com:some/repo.git
git pull origin branch
Dessa forma, você pode trabalhar com guias normais em 2 space indented
projetos.
É claro que você pode escrever uma solução semelhante para a conversão a partir da 4 space to 2 space
qual é o caso, se quiser contribuir com projetos publicados por mim e tender a usar 2 espaços durante o desenvolvimento.