Eu não tenho uma solução, mas pensei em como esse tipo de programa deveria funcionar. O que você está pedindo não é simples.
Por exemplo, suponha que sua expressão regular seja simples "flor".
1. Se a saída do terminal for "f" "inferior", devemos executar a coloração. Ou usando um editor, primeiro digitamos "lower" e então vamos para o início da palavra e digitamos "f".
2. Se a saída do terminal for "flower", devemos cancelar a coloração já executada.
3. Se a saída for lenta, digamos cinco segundos de atraso entre todos os caracteres em "flower", não devemos interromper a saída irritantemente, e devemos executar imediatamente a coloração.
A funcionalidade deve ser muito bem acoplada ao programa terminal (como você sugere), verificando se alguma das expressões regulares especificadas corresponde à linha atual e depois fazer a coloração. Ou para torná-lo mais útil, poderíamos usar um programa (pouco como / usr / bin / script) que age como um dispositivo terminal e mantém o controle da saída da tela, para o qual ele precisa conhecer muito bem o comportamento do terminal; Neste caso, também devemos ser capazes de exibir novamente os caracteres com cores diferentes (executar a coloração e cancelar a coloração já executada).
Você fornece uma boa ideia de programação ...