Может ли `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.
Вот пример страницы Supercat о работе Gentoo на emerge.log
Или с функцией ( источником):
#!/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.