Як зробити кольори відображення Vim, як зазначено кольоровими кодами?


59

Коротше кажучи, я намагаюся замінити lessна vim( vimpager). У мене є налаштування сценаріїв, щоб виплювати кольори (і жирний, і все приємне), коли вони можуть. lessрозуміє коди кольорів та добре їх відображає. Як я можу зробити vimрозбір кодів і відобразити кольори / сміливість так, як lessце робиться?

Відповіді:


44

Дві відповіді:

Короткий: ви хочете використовувати скрипт vim AnsiEsc.vim . Він приховає фактичні послідовності відтворення ANSI у вашому файлі та використає підсвічування синтаксису для відповідного забарвлення тексту. Проблема з використанням цього в пейджері полягає в тому, що вам доведеться визначити vim, коли це використовувати. Я не впевнений, чи можете ви завжди завжди його завантажувати, чи це буде суперечити іншим синтаксичним файлам. Вам доведеться з цим експериментувати.

Довга відповідь: Найкраще, на що можна сподіватися, - це часткове непортативне рішення. Менше насправді не розуміє термінальних послідовностей виходу, оскільки вони значною мірою залежать від терміналу, але менше може розпізнати (підмножину) цих даних і буде знати, щоб передати їх терміналу, якщо ви використовуєте -r(або-R) варіант. Термінал буде інтерпретувати послідовності евакуації та змінювати атрибути тексту (колір, жирний, підкреслення ...). Vim, будучи редактором, а не пейджером, не просто передає необроблені символи управління терміналу. Потрібно їх відображати певним чином, щоб ви могли фактично їх редагувати. Ви можете використовувати інші функції vim, такі як приховування та виділення синтаксису, щоб приховати послідовності та використовувати їх для встановлення кольорів тексту, однак, він завжди буде обробляти лише підмножину термінальних послідовностей і, ймовірно, не працюватиме на деяких терміналах .

Це дійсно лише одна з багатьох проблем, з якими ви зіткнетесь, коли спробуєте використовувати текстовий редактор як пейджер.


Щоб сказати це в двох словах, ви повинні написати частину емулятора терміналу у Vim, частину, яка обробляє послідовності вхідних терміналів, які є у вашому вході.
Жиль

Спасибі, я думаю, я здаюсь. Якщо це не просто, це вже не має особливого сенсу.
phunehehe

1
@JanHlavacek посилання розірвано :(
Nitrodist

19
@Nitrodist: less -r FILE( джерело )
Adobe

1
Здається, посилання Яна перейшла на linux-tips.com/t/how-to-enable-syntax-highlighting-in-less/208
Тимофій Зорн

2

Тепер з vim 8 ви можете використовувати термінальний режим, :terminalа потім у цьому терміналі виконайте cat myfileі поверніться до звичайного режиму з Ctrl-w N.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.