как сделать так, чтобы vim отображал цвета в соответствии с цветовыми кодами?

<p>короче говоря, я пытаюсь заменить <code>less</code> на <code>vim</code> (<code>vimpager</code>). у меня есть настройки для скриптов, чтобы выплевывать цвета (и жирный и все хорошо), когда они могут. <code>less</code> понимает цветовые коды и хорошо их отображает. как я могу заставить <code>vim</code> анализировать коды и отображать цвета/жирность, как это делает <code>less</code>?</p>

<p>два ответа:</p><p>коротко: вы хотите использовать скрипт vim <a href="https://www.vim.org/scripts/script.php?script\_id=302">ansiesc.vim</a> . он будет скрывать фактические escape-последовательности ansi в вашем файле и использовать подсветку синтаксиса для соответствующего цвета текста. проблема с использованием этого в пейджере заключается в том, что вам нужно будет заставить vim распознавать, когда использовать это. я не уверен, можете ли вы просто всегда загружать его или он будет конфликтовать с другими файлами синтаксиса. вам придется экспериментировать с этим.</p><p>длинный ответ: лучшее, на что вы можете надеяться, это частичное непереносимое решение. less фактически не понимает escape-последовательности терминала, поскольку они в значительной степени зависят от терминала, но less может распознать их (подмножество) и будет знать, как передать их на терминал, если вы используете <code>-r</code> (или <code>-r</code>) вариант. терминал интерпретирует escape-последовательности и изменяет атрибуты текста (цвет, жирный, подчеркивание ...). vim, будучи редактором, а не пейджером, не просто передает необработанные управляющие символы в терминал. он должен отображать их каким-то образом, чтобы вы могли их редактировать. вы можете использовать другие функции vim, такие как скрытие и подсветка синтаксиса, чтобы скрыть последовательности и использовать их для установки цветов текста, однако он всегда будет обрабатывать только подмножество последовательностей терминалов и, вероятно, не будет работать на некоторых терминалах. ,.</p><p>это действительно одна из многих проблем, с которыми вы столкнетесь, когда попытаетесь использовать текстовый редактор в качестве пейджера.</p>

<p>теперь с vim 8 вы можете использовать режим терминала <code>:terminal</code>, а затем в этом терминале сделать <code>cat myfile</code> и вернитесь в обычный режим с помощью ctrl-w n. это будет правильно отображать цветовые коды ansi. автоматизируя эти шаги и читая данные из стандартного ввода вместо файла, можно использовать vim для замены less.</p>