Ответы:
Пакет GNU, source-highlight , похоже, делает свое дело (хотя и не использует cat - как указывает Джон Т, это не возможно для cat специально). Он доступен через apt-get в Ubuntu и требует библиотеки регулярных выражений Boost. Проверьте менеджер пакетов, чтобы увидеть, доступны ли оба, иначе вы можете получить их из Интернета. Я думаю, что на странице GNU, на которую вы ссылались ранее, есть ссылка на Boost.
После установки я создал новый скрипт в моем пути с именем ccat . Сценарий выглядит так:
#!/bin/bash
src-hilite-lesspipe.sh $1
Ничего особенного, просто упрощение меньшего количества скриптов, которые они включают в источник-подсветка. Он действует так же, как кошка, когда вызывается таким образом.
Тем не менее, включенный скрипт less - хороший скрипт для использования. Я только что добавил следующее .bashrc :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Этот сценарий также включен в онлайн-руководство для источника.
Я полагаю, что вы могли бы использовать псевдоним cat для вызова src-hilite-lesspipe.sh $ 1, если вы хотели полностью игнорировать cat, но это может быть нежелательно.
$1
:).
brew install source-highlight
. Невозможно покрасить yaml :(
Чтобы вывести синтаксис выделенного кода с чем-то вроде cat
, я создал ccat
команду, следуя инструкциям на http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/ .
#!/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
Чтобы вывести синтаксис выделенного кода с чем-то вроде less
, я использую vim как меньшую замену.
alias less='/usr/share/vim/vim72/macros/less.sh'
.functions
ascolorize(){...}
Чтобы решить эту проблему, я использовал выделение . Я сделал функцию, которая пытается распечатать файл с подсветкой синтаксиса, и если он не работает, он просто использует cat для печати файла. Вы можете изменить тему подсветки синтаксиса на любую, какую захотите.
function hl { # Overrides the cat command to use syntax highlighting
# Highlight with 'moria' theme to terminal, and suppress errors
highlight $1 -s moria -O xterm256 2> /dev/null
if (($? != 0)); then # If the command had errors
cat $1 # Just cat the file out instead
fi
}
Если вы работаете на Mac и используете Homebrew (очень рекомендуется!), Вы можете установить выделение, запустив brew install highlight
. В противном случае он должен быть доступен на большинстве других менеджеров пакетов и может быть загружен здесь .
Я также сделал функцию для распечатки файла с подсветкой синтаксиса как html и открытия его в браузере для печати (опирается на open
команду в OS X):
function hlprint {
# Print with line numbers and 'moria' theme
highlight $1 -l -o print.html -s moria
open print.html # Open in browser
sleep 5 # Give the browser time to open
rm print.html highlight.css # Remove output files
}
Наслаждайтесь!
Нет, у кота нет возможностей подсветки синтаксиса. Если вы хотите просмотреть исходный код с подсветкой синтаксиса, вставьте его в vim или в свой редактор (с подсветкой синтаксиса). Таким образом, вы можете даже пролистать вывод, если это длинный файл, используя Ctrl+ F(вперед) и Ctrl+ B(назад).
bat
ostechnix.com/...