Às vezes preciso trabalhar na base de código de outro. Ok, isso acontece um pouco mais do que às vezes. Alguns desenvolvedores usam tabulações para recuar, outros usam 3 ou 4 espaços. Eu uso 2 espaços.
Ao abrir a base de código, preciso alterar minhas configurações. Mas posso lidar com isso. Estas linhas ficam no final do meu .vimrc
:
" Maintain other's code (shit happening sometimes)
fun MaintainOthersCode(tab, isSoft)
if a:isSoft
set expandtab
else
set noexpandtab
endif
let &tabstop=a:tab
let &shiftwidth=a:tab
let &softtabstop=a:tab
endfun
command! -nargs=* MaintainOthersCode call MaintainOthersCode(<f-args>)
O que isso faz por mim? Quando eu preciso mudar o recuo para tab, então eu apenas digito :MaintainOthersCode 2 0
que significa que eu quero mudar meu recuo para 2 espaços, mas com tabulação. O primeiro parâmetro define o comprimento da indentação e o segundo é um booleano como “Deseja usar soft-tabs?”
Alguns exemplos:
" this is my default: 2 spaces
:MaintainOthersCode 2 1
" 3 spaces
:MaintainOthersCode 3 1
" 4 spaces
:MaintainOthersCode 4 1
" 2 characters length tab
:MaintainOthersCode 2 0
" 3 characters length tab
:MaintainOthersCode 3 0
" 4 characters length tab
:MaintainOthersCode 4 0
Essas mudanças não são permanentes. Quando fecho o vim ou abro um novo, recupero as minhas preferências.