引入commander，支持自定义后缀名；tabs转换为spaces