Mantendo a cor do vim com grep

3

Eu gosto da maneira como o vim destaca a saída do syslog. No entanto, só quero que as saídas mais recentes sejam abertas. Eu tentei

grep --color=always "$@" /var/log/syslog  > /tmp/fileOUT
vim /tmp/fileOUT

mas dá a saída de cor bash como [033; m blah blah. Se eu não for include --color=always , não haverá cor alguma. Como posso fazer isso? (Estou usando o bash)

    
por MrUser 09.05.2014 / 11:44

1 resposta

3

Bem, vim usa arquivos de modelos de cores para destacar a sintaxe. Isso não tem nada a ver com a saída de grep , que usa sequências de escape ANSI (as coisas \[033; que você mencionou).

Meu vim não tem um arquivo de estilo para o syslog e não o colora (eu verifiquei tanto no Debian quanto no Ubuntu 14.04). Se você observar o arquivo relevante em seu sistema, verá que ele começa com uma expressão regular que define os arquivos a serem comparados. Portanto, se você fizer com que o /tmp/fileOUT corresponda a essa sintaxe, ela deverá ser colorida. Não use --color=always , isso vai estragar tudo.

Como alternativa, você pode usar source-highlight . Instale-o com sudo apt-get install source-highlight e, em seguida, execute:

sudo tail -n 50 /var/log/syslog | source-highlight --out-format=esc -o STDOUT -s log

O comando acima irá colorir as últimas 50 linhas de /var/log/syslog :

    
por terdon 09.05.2014 / 15:17