Atualmente, isso não parece viável no vim. Você pode ter guias ou espaços, não ambos. Não é surpresa, pois o tempo para espaços sobre as guias é muito sensível ao idioma. Considere: Em python, como você trataria:
x = fn(abc, 'def', {
ghi: jkl,
mno: pqr,
})
Você deve voltar às guias em algum momento? Isso seria ideal, mas muito sensível ao contexto e não funcionaria realmente em linguagem cruzada. Outro exemplo divertido, no haskell:
data Something = Something { flag1 :: Bool
, flag2 :: Bool }
deriving (Eq, Ord, Show)
Boa sorte com isso.
Eu concluí que extensões de linguagem específicas seriam necessárias para esse tipo de funcionalidade, infelizmente. Se você sabe de uma boa maneira de fazer isso, porém, eu adoraria ouvir isso.