Ответ 1
Использование Чарльза Кэмпбелла (Dr Chip) Плагин AnsiEsc:
http://www.vim.org/scripts/script.php?script_id=302
До:
:AnsiEsc<CR>
У меня есть script, который генерирует в нем файл журнала с цветовыми кодами ANSI:
[2012-05-14 18:00:02] ^[[0mINF: -- Starting update script --^[[0m
[2012-05-14 18:00:29] ^[[91mERR: Improper date, entry being ignored.^[[0m
Есть ли способ заставить Vim понять эти цветовые коды?
Спасибо за любую помощь.
Использование Чарльза Кэмпбелла (Dr Chip) Плагин AnsiEsc:
http://www.vim.org/scripts/script.php?script_id=302
До:
:AnsiEsc<CR>
Я не уверен в vim, но если вы просто просматриваете файл журнала (т.е. вам не нужно редактировать), вы можете использовать меньше:
less -R
AnsiEsc
работает с базовыми цветовыми кодами ANSI, но не с другими кодами.
Проблема в том, что
есть много ANSI_escape_code s
вне основного \033[31m red \033[0m
;
Что такое AnsiEsc
, что такое любая программа, с \033[... unrecognized
?
Кажется, что AnsiEsc
просто оставляет одно, но по-разному в Vim и mvim.
Лучше doc на AnsiEsc
будет приветствоваться;
ссылки на небольшой парсер ANSI escape-кода в python приветствуются.
Контрольный образец для цветного вывода из gnu ls и grep, с TERM xterm-256color
и версия macosx Terminal 2.3:
#!/bin/bash
# test https://en.wikipedia.org/wiki/ANSI_escape_code#Colors from gnu ls and grep
mkdir bluedir 2> /dev/null
ls -d --color=always bluedir > ls.out
echo red-hot | grep --color=always red > grep.out
od -c ls.out
# 0000000 033 [ 0 m 033 [ 3 4 m b l u e d i r
# 0000020 033 [ 0 m \n
# Vim 7.3 :AnsiEsc "bluedir" blue, \033[0m as is
# mvim 8.0 :AnsiEsc "bluedir" works
od -c grep.out
# 0000000 033 [ 0 1 ; 3 1 m 033 [ K r e d 033 [
# 0000020 m 033 [ K - h o t \n
# both Vim and mvim display as is
Смотрите также прекрасный bash script colors256.
Поскольку ссылка в принятом ответе не работает, я нашел эту ссылку: https://github.com/vim-scripts/AnsiEsc.vim