Vim распечатать файл на терминале и выйти

12

Я хотел бы, чтобы vim сделал это, чтобы выделить синтаксис, настроенный в vim (или без необходимости в дополнительных инструментах). Поэтому вместо того, чтобы использовать, cat file | <some_sh_tool>я бы использовал vim +"some_opts" +"..." +q file. Проблема в том, что vim восстанавливает предыдущий экран при выходе, но с помощью некоторых инструментов удаленного доступа этого не произошло, поэтому он работал в основном как cat с подсветкой синтаксиса.

Так возможно ли это?

РЕДАКТИРОВАТЬ

Думая об этом больше, я думаю, что это здорово. Помимо подсветки синтаксиса, при отображении содержимого файла могут использоваться и другие функции vim, такие как номера строк, пробелы, переносы и т. Д., Особенно в скрипте, а также потому, что vim вездесущ.

majkinetor
источник
2
использовать экран GNU.
Иордания
1
это не совсем то же самое, вы не можете использовать его в скрипте, кроме того, иногда вы не можете выбирать.
майкинетор
1
Возможный дубликат: stackoverflow.com/questions/13408134/…
echristopherson

Ответы:

9

Вы можете отключить альтернативный экран, сказав, что код для его включения для этого терминала является пустой строкой, например:

vim --cmd 'set t_ti= t_te=' ...

Но вы обнаружите, что вам нужно больше. Пытаться:

vim --cmd 'set t_ti= t_te=' +redraw +q file

как начало.

Стефан Шазелас
источник
Может потребоваться объяснить, как создать псевдоним для последней команды.
cjh
@cjh: это зависит от оболочки пользователя.
Bananguin
1
alias catx='vim --cmd "set t_ti= t_te=" +redraw +q'тогда просто бегиcatx infile
Рахул Патил
Вы также можете добавить +"colo colorscheme"до +redraw.
Петер
2
Фигово. Он покажет первую страницу и выйдет. Мне нужно, чтобы показать все линии. Добавление + $ перед перерисовкой показывает только первую и последнюю страницы.
majkinetor
2

Возможно, вы захотите взглянуть enscript- он имеет стили подсветки синтаксиса для нескольких языков и предназначен для использования в качестве фильтра, а вывод не ограничен только последовательностями escape-форматирования ANSI - он также может выводить PostScript, HTML или RTF.

peterph
источник
1
Я уже настроил vim так, как мне нужно - цвета, языки и т. Д. Некоторые функции sh для редких языков настраиваются индивидуально - Csound, AutoHotKey и т. Д. Я не буду снова писать файлы конфигурации для другого инструмента.
майкинетор
@majkinetor уверен, все зависит от того, для чего именно вы хотите его использовать.
Петер
2

Я нашел именно то, что мне нужно, в пакете под названием vimpager .

Он поставляется с утилитой vimcat.

majkinetor
источник