Может ли `cat` показывать файлы, используя разметку кода в цветах?

Иногда я быстро хочу просмотреть содержимое файла из командной строки. Для этого я, конечно, использую cat, но это часто исходные файлы на Python, Java или простой HTML. Для этих файлов было бы удобно, если cat может дать некоторую цветовую разметку файлам, чтобы их было легче читать.

Можно cat делать такие вещи?

8 ответов

Решение

cat не в состоянии это сделать. Тем не менее, возможно, фрагменты могут помочь вам там. Это скрипт на python и может быть установлен через apt-get

sudo apt-get install python-pygments

или легко загружается и устанавливается через easy_install.

Он поддерживает множество языков исходного кода, а также языков разметки

Используется

pygmentize -g <filename>

Не из cat сам по себе, но вы можете использовать что-то вроде источника подсветки или суперкат или подсветки

Источник-Изюминка

Эта программа, учитывая исходный файл, создает документ с подсветкой синтаксиса. Он также предоставляет библиотеку подсветки C++ (новая) (начиная с версии 3.0).

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

Руководство по установке:

Смотрите файл INSTALL для подробных инструкций по сборке и установке; в любом случае, если вы привыкли к компиляции программного обеспечения Linux, поставляемого с исходными текстами, вы можете просто следовать обычной процедуре, то есть распаковать загруженный файл в каталог, а затем:

 cd <source code main directory>
 ./configure
 make
 make install

Supercat

Это домашняя страница Supercat. Supercat - это программа, которая раскрашивает текст на основе соответствия регулярным выражениям / строкам / символам. Supercat поддерживает вывод html, а также стандартный текст ASCII. В отличие от некоторых существующих программ для раскрашивания текста, Supercat не требует, чтобы вы были программистом, чтобы создавать правила раскрашивания.

Если вы написали файл конфигурации Supercat для стандартного типа файлов, пожалуйста, не стесняйтесь обращаться ко мне по адресу "bug-spc (at) nosredna (dot) net" для возможного включения в дистрибутив Supercat.

Или с функцией ( источником):

#!/bin/bash#!/bin/bash
if [ ! -t 0 ];then
        file=/dev/stdin
elif [ -f $1 ];then
        file=$1
else
        echo "Usage: $0 code.c"
        echo "or e.g. head code.c|$0"
        exit 1
fi
pygmentize -f terminal -g $file

Требуется: Фрагменты (sudo apt-get install python-pygments python3-pygments) Добавьте его как функцию в bash .functions и дайте ему имя, например color()

Начиная с этого ответа, вы можете использовать python-pygments пакеты, чтобы выделить вещи. Сначала сделайте:

sudo apt-get install python-pygments python3-pygments

затем:

pygmentize -g FILENAME

тогда попробуйте:

введите описание здесь

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

echo "alias catc='pygmentize -g'" >> ~/.bash_aliases 
chmod +x ~/.bash_aliases

Закройте терминал, откройте его снова и catc Теперь команда должна работать - если это не так, убедитесь, что эти строки находятся в .bashrc файл, и не комментируется:

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Другое дело было бы просто использовать nano:

nano testfile

введите описание здесь

man view или же man vim

Основное использование: view <filename>

Уволиться: :q<Return> (добавить <Esc> сначала, если используете vim), или же ZZ (верхний регистр z дважды).

Текстовый редактор программиста vim имеет все, что вам нужно, и, вероятно, уже является частью вашей системы.

vim имеет режим только для чтения, активированный с view или же vim -R, Если все, что вы хотите сделать, это просмотреть размеченный файл, этого должно быть достаточно.

Простой в использовании, навигационный, доступен везде. Нет необходимости возиться с установкой нового программного обеспечения или написанием сценариев bash.

Летучая мышь - кошка-клон с крыльями

Вы также можете проверить bat который имеет следующие особенности:

  • Подсветка синтаксиса
  • Git интеграция
  • При желании показаны непечатные символы
  • Автоматический пейджинг с less
  • Конкатенация файлов в качестве замены для cat при перенаправлении

предварительный просмотр

Фото взято с официального GitHub

Монтаж

Вы можете получить последний пакет Debian здесь и установить его с:

sudo dpkg -i bat_0.10.0_amd64.deb

Адаптация номера версии и архитектуры.

Можно проверить ccat.

Это добавляет подсветку синтаксиса к выходным файлам.

cat не может производить подсветку синтаксиса исключительно. Тем не менее вы можете сделать это следующим образом, используя python-pygments, Сначала установите его из терминала как,

sudo apt-get install python-pygments

Теперь скопируйте функцию ниже ~/.bashrc, Это даст вам то, что вы хотите, более того, оно сохранит свойстваcat в противном случае нет смысла использовать cat

catc(){
    cat "$@" > /tmp/.tmp
    pygmentize -g /tmp/.tmp
    rm /tmp/.tmp
}

Источник ~/.bashrc как,

. ~/.bashrc

Это даст цветную продукцию,

catc <filename>

Он также соединится с цветом,

catc <file1> <file2> ... <filen>

Вместо установки стороннего пакета вы можете просто использовать gedit быстро просмотреть файл с подсветкой синтаксиса. Например, скопируйте адресную строку выше и вставьте в свой терминал:

gedit https://Ask-ubuntu.ru/questions/405960/can-cat-show-files-using-code-markup-in-colors

Вы увидите этот вопрос в HTML с форматированными цветами:

  • Вы можете использовать знакомые gedit навигационные клавиши
  • Вы можете включить / выключить перенос строки
  • Вы можете использовать плагины, как я установил для 80-символьного желоба и обзора документов (справа) с ползунком миниатюр
  • Единственное предостережение: вам нужно запомнить Alt + F4, чтобы быстро закрыть окно для симуляции cat который не требует нажатия клавиш для закрытия.

Другие ответы охватывают почему cat не умеет это делать. Хотя вы можете сделать это с меньшими затратами, используя lesspipe.sh.

Другие вопросы по тегам