Como você classifica um intervalo de linhas por tamanho?

Muitas vezes eu só quero classificar todos os meus#includeno topo dos meus arquivos de fonte e cabeçalho pelo tamanho deles.

vim permite-me classificar alfanumericamente de forma semelhante com:{range} sort u.

Emvim, como você classifica um intervalo de linhas pelo comprimento da linha? Tais linhas mais curtas são seguidas por linhas mais longas.

Pesquisando na internet, achei isso:

:% s/.*/\=printf("%03d", len(submatch(0)))."|".submatch(0)/ | sor n | %s/..../

Mas isso só funciona para classificar o arquivo inteiro, e é magia negra para mim de qualquer maneira. Estou tentando descobrir como fazer o mesmo tipo com um intervalo como da linha 4 a 18, como em:4,18 s/... Você tem alguma ideia?

questionAnswers(3)

yourAnswerToTheQuestion