Может ли `cat` показывать файлы с использованием разметки кода в цветах?
Иногда я быстро хочу просмотреть содержимое файла из командной строки. Для этого я, конечно, использую cat
, но часто это исходные файлы в Python , Java или простой HTML , Для этих файлов было бы удобно, если cat
мог бы дать некоторую цветовую разметку для файлов, чтобы она читалась легче.
Может ли cat
делать такую вещь?
7 ответов
cat
не может этого сделать. Однако, возможно, пигменты могут помочь вам там. Это скрипт python и может быть установлен через apt-get
sudo apt-get install python-pygments
или легко загрузить и установить через easy_install.
Он поддерживает множество исходных кодов языков , а также языки разметки
Используется
pygmentize -g <filename>
Не из cat
, но вы можете использовать что-то вроде source highlite или supercat или highlight
Source-выделить
Эта программа, заданная исходным файлом, создает документ с подсветкой синтаксиса. Он также предоставляет библиотеку выделения 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 (точка) net» для возможного включения в дистрибутив суперкарта.
Вот пример страницы работы Supercat по emerge.log Gentoo
Или с функцией ( источник ) :
#!/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
Требуется: Pyigs (sudo apt-get install python-pygments python3-pygments
)
Добавьте его как функцию для bash .functions и дайте ему имя, например color ()
Как из этого ответа здесь , вы можете использовать python-pygments
, чтобы выделить материал. Сначала выполните:
sudo apt-get install python-pygments python3-pygments
, то
pygmentize -g FILENAME
, тогда получим go:
Вы также можете установить его как псевдоним, как в ответе, который я связал, - в основном, запустите это:
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.
cat
не может вызывать подсветку синтаксиса. Тем не менее вы можете сделать это следующим образом, используя python-pygments
. Сначала установите его с терминала как
sudo apt-get install python-pygments
Теперь скопируйте функцию ниже ~/.bashrc
. Он даст вам то, что вы хотите , кроме того, оно сохранит свойства cat
, в противном случае нет смысла использовать cat
catc(){
cat "[email protected]" > /tmp/.tmp
pygmentize -g /tmp/.tmp
rm /tmp/.tmp
}
Источник ~/.bashrc
as,
. ~/.bashrc
Он выдаст цветной вывод,
catc <filename>
Он также будет конкатенировать с цветом,
catc <file1> <file2> ... <filen>
Другие ответы касаются того, почему cat
не может этого сделать. Хотя вы можете сделать это с меньшим использованием
lesspipe.sh .