Mantenha os dotfiles o mais portáteis possível e evite configurações ou switches dependentes do sistema operacional que exijam uma versão específica de uma ferramenta, por exemplo, evite a sintaxe GNU se você não usar o software GNU em todos os sistemas.
Você provavelmente vai se deparar com situações em que é desejável usar configurações específicas do sistema. Nesse caso, use uma instrução switch com as configurações individuais:
case $(uname) in
'Linux') LS_OPTIONS='--color=auto --group-directories-first' ;;
'FreeBSD') LS_OPTIONS='-Gh -D "%F %H:%M"' ;;
'Darwin') LS_OPTIONS='-h' ;;
esac
Caso os arquivos de configuração de aplicativos arbitrários exijam opções diferentes, é possível verificar se o aplicativo fornece opções de compatibilidade ou outros mecanismos. Por exemplo, para vim
, você pode verificar a versão e o patchlevel para suportar recursos que as versões mais antigas, ou as versões compiladas com um conjunto de recursos diferente, não possuem. Exemplo de fragmento de .vimrc
:
if v:version >= 703
if has("patch769")
set matchpairs+=“:”
endif
endif