Risposte:
In tal modo, si printfaspetta che un numero decimale venga convertito in uno esadecimale. Tutto quello che devi fare è convertire il personaggio in un numero come segue:
s/\([a-z]\)/\=printf("%#02x", char2nr(submatch(0)))/
Vedi :help char2nr()per i dettagli.