Як вивести виділений вихідний код у файл для використання поза vim


9

На своєму робочому місці я хочу зробити презентацію спеціальної мови, яку я розробив для вирішення деяких проблем, які ми мали. Для легшого розвитку я створив власний файл синтаксису vim для цієї мови.

Тепер мені потрібно представити його на іншому комп'ютері, у якому не буде цього синтаксичного файлу. Наскільки я знаю, він може навіть не встановити vim (але я сумніваюся в цьому).

Було б ідеально, якби я міг less -rу файлі отримати той самий синтаксис, що виділяється на моєму комп’ютері.

Однак я не знаю, як копіювати та вставляти, зберігаючи кольори (у терміналі від gnome на Debian), або як виводити файл із виділенням його синтаксису як необроблені символи управління від vim. Я впевненіший у пошуку рішення від vim, але не маю ідеї, що шукати для цього.

Чи знаєте ви який-небудь спосіб вивести файл, який ви відкрили, підсвічуючи його синтаксис як символи ANSI raw-control в іншому файлі?

Відповіді:


13

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

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


3
БОЖЕ МІЙ! Це так ідеально, я б хотів, щоб я міг відповісти вашу відповідь не один раз.
DainDwarf

2

Програма vimpager включає скрипт під назвою "vimcat". Він може вивести файл із підсвічуванням синтаксису vim, перетвореним у коди аварійних файлів ansi.

(Додаткове саморекламування: я написав виделку для neovim: nvimpager .)


1

[EDIT]: Щойно помічена кішка не робить хитрості під час використання vim та script, проте ви можете використовувати "head".

guest@demomachine$ head -c [terminalsize] demo.typescript

EXAMPLE: guest@demomachine$ head -c 3710 demo.typescript

Якщо в презентаційній машині доступний кольоровий термінал і заснований на * nix, ви можете записати сценарій

you@yourmachine$ script -c "vim [sourcefile]" demo.typescript

а потім просто

guest@demomachine$ cat demo.typescript

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

на презентаційній машині. Підказка: враховуйте розмір терміналу під час запису, він повинен бути меншим або таким же розміром, як демонстраційний апарат.

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

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