Padrão shiftwidth em vi é 8 espaços, de :help shiftwidth :
'shiftwidth' 'sw' number (default 8)
local to buffer
Number of spaces to use for each step of (auto)indent. Used for
'cindent', >>, <<, etc.
Portanto, você deve definir shiftwidth para 4 :
set shiftwidth=4
Adicione a linha acima ao arquivo .exrc para torná-lo persistente.