Substituir: ^\(\w.*?\) *=.*
por: extern ;
Explicação: início das linhas de correspondência ( ^ ) com um constituinte de palavra ( \w ) seguido por qualquer número de caracteres que não seja nova linha ( .*? ) até a primeira ocorrência de zero ou mais espaços ( * ) seguido por um sinal de igual e mais caracteres além de uma nova linha ( =.* ). A parte da linha até e excluindo os espaços opcionais seguidos pelo sinal de igual é colocada em um grupo que o texto de substituição pode usar como .
Se você tiver inicializadores que abranjam várias linhas, talvez queira remover linhas que começam com algum espaço em branco, com M-x flush-lines na regex ^\s- .