Два ответа:
Коротко: вы хотите использовать vim-скрипт AnsiEsc.vim . Он будет скрывать фактические escape-последовательности ANSI в вашем файле и использовать подсветку синтаксиса для соответствующего цвета текста. Проблема с использованием этого в пейджере заключается в том, что вам нужно будет заставить vim распознавать, когда использовать это. Я не уверен, можете ли вы просто всегда загружать его или он будет конфликтовать с другими файлами синтаксиса. Вам придется экспериментировать с этим.
Длинный ответ: лучшее, на что вы можете надеяться, это частичное непереносимое решение. Less фактически не понимает escape-последовательности терминала, поскольку они в значительной степени зависят от терминала, но less может распознать их (подмножество) и будет знать, как передать их на терминал, если вы используете -r
(или-R
) вариант. Терминал интерпретирует escape-последовательности и изменяет атрибуты текста (цвет, жирный, подчеркивание ...). Vim, будучи редактором, а не пейджером, не просто передает необработанные управляющие символы в терминал. Он должен отображать их каким-то образом, чтобы вы могли их редактировать. Вы можете использовать другие функции vim, такие как скрытие и подсветка синтаксиса, чтобы скрыть последовательности и использовать их для установки цветов текста, однако он всегда будет обрабатывать только подмножество последовательностей терминалов и, вероятно, не будет работать на некоторых терминалах. ,
Это действительно одна из многих проблем, с которыми вы столкнетесь, когда попытаетесь использовать текстовый редактор в качестве пейджера.