Dado um grupo repetido como (...){n,m} ou (...)+ , acho que não há nenhuma maneira de extrair cada ocorrência do grupo no Vim. Somente o último é disponibilizado em todas as funções e comandos relacionados ao regex.
Dito isto, você pode usar uma substituição aninhada:
:s/\v%([a-zA-Z]\s){3,}[a-zA-Z]/\=substitute(submatch(0), '\s', '', 'g')/gc
Um \= na substituição de :s faz o Vim avaliar a substituição como uma expressão. E nessa expressão, estou usando a função substitute() para remover todos os espaços em todo o texto correspondente de :s (obtido por submatch(0) ), dando Ligh de L i g h .