vim & colors из ANSI Escape Sequence: как отображать в vim те же цвета, которые отображаются с помощью команды cat

8

Вот что я делаю: я повторяю цвета Php вот так:

цвета оболочки

php создает выходные данные, содержащие escape-последовательности ANSI, которые окрашивают текст, когда он отображается через оболочку на моем терминале. Вы можете найти класс php и объяснение здесь .

Но если я отправляю свой вывод в файл и пытаюсь прочитать его с помощью vim, он не «цветной», я просто вижу специальные символы. Есть ли способ отобразить цвета, как они отображаются в оболочке?

Оливье Понс
источник
Может помочь, если вы упомянете, как и с какой программой вы создаете файл с цветным текстом, и как вы позже пытаетесь его отобразить.
Джон С. Грубер
Извините, если я не был достаточно точен. Цитирую мой вопрос: я повторяю через Php . Т.е. " php -f filename" и я повторяю использование этого класса здесь: if-not-true-then-false.com/2010/…
Оливье Понс
Возможный кросс-сайт дубликат: superuser.com/questions/358409/…
Сиро Сантилли 冠状 病毒 审查 六四 事件 14

Ответы:

8

Вывод терминала будет цветным, если содержимое файла будет отправлено «как есть» на терминал без каких-либо изменений. Однако vim и некоторые другие редакторы будут избегать метасимволов в тексте и вместо этого, возможно, добавят некоторые другие цветовые коды для подсветки синтаксиса, так что это не сработает.

Попробуйте сбросить файл в терминал cat, это должно работать. Некоторые простые редакторы или пейджеры lessмогут также работать.

Редактировать: я не нашел способ позволить vim "проходить" через все коды перехода, но я нашел этот ответ, который ссылается на этот скрипт vim , который анализирует коды перехода и использует подсветку синтаксиса vim для воссоздания цветовых кодов на выходе. Согласно его описанию, он должен делать именно то, что вы хотите (но я не проверял это).

Филипп Вендлер
источник
Есть ли способ сделать это с помощью vim (= точно, чтобы не сбежать)?
Оливье Понс,
@OlivierPons см. Мое редактирование
Филипп Вендлер
Он работал не с меньшими затратами, а с большим: cat ~ / myfile.txt | больше
wranvaud
Этот сценарий вроде работает. Это vimball, поэтому, чтобы установить его, заархивируйте его куда-нибудь, затем в vim ': source ansi.vba'. Он обрабатывает много выходов, но не все - Другое решение - «менее -R имя файла».
Матью
0

Я только что обнаружил, что есть плагин Vim для работы с escape-символами ASCI. Это называется «Подсветка Анси». Если вы заинтересованы, пожалуйста, посетите http://www.drchip.org/astronaut/vim/index.html#ANSIESC

О, вам понадобится использовать Vimballs для распаковки ANSIESC.

Wawrzek
источник