Как мне раскрасить сообщения об ошибках терминала? - PullRequest
0 голосов
/ 17 января 2009

Я хотел бы видеть ошибки в моем терминале красочно, как:

enter image description here

Ответы [ 3 ]

3 голосов
/ 17 января 2009

IPython выделит синтаксис кода и трассировки стека Python, как в приведенном вами примере (который фактически является трассировкой стека Python).

Пример, на который вы ссылаетесь, на самом деле не был подсвечен синтаксисом на консоли пользователя или поддержкой его оболочки, а скорее подсвечен веб-сайтом Stack Overflow после загрузки.

Если вам нужна дружественная для новичков оболочка UNIX, которая выполняет определенный уровень подсветки синтаксиса общего назначения, я рекомендую оболочку рыб .

2 голосов
/ 17 января 2009

К сожалению, не существует идеального общего решения. Но есть несколько общих способов работы.

GRC , обозначает Generic Colouriser и предназначен для украшения ваших лог-файлов или вывода команд. Он упакован в основных дистрибутивах. Я использовал его, чтобы очень хорошо раскрасить мой вывод. GRC обычно используется для общих команд с псевдонимами, такими как «grc comand». Есть и другие раскраски, и у сайтов иногда есть свои уникальные.

Очень многие программы используют обычный переключатель командной строки --color = auto. --color = всегда заставит цвет получиться даже из неинтерактивной оболочки, что может быть полезно посмотреть позже для зарегистрированных команд, использующих команды с кодом терминала, такие как less -R.

Если ваш текст взят из какой-либо наполовину известной программы и когда-либо регистрируется или сохраняется в файле, текстовые редакторы Vim или Emacs могут сделать для него очень умное выделение. Другие редакторы / идентификаторы тоже могут, но ни один из них не настолько исчерпывающий. У них есть общие схемы выделения для файлов конфигурации, а также определенные типы файлов, которые становятся очень неясными, такие как «Файл конфигурации Quake [1-3]». И, конечно же, для каждого редактора существует множество цветовых схем для изменения цветов выделенных областей, распознаваемых редактором. Это, вероятно, метод, наиболее используемый для получения действительно хорошего выделения.

Конечно, есть способы вручную вводить цвета в вашем терминале, используя tput или фактические управляющие коды, и отдельные программы, такие как ipython или что-то еще. Вы не задавали этот вопрос, но вы выбрали такой ответ в качестве своего любимого решения: (

Общее решение, которое вы могли бы ожидать - раскрасить стандартную ошибку в вашем терминале. К сожалению, сделать это невозможно из-за множества сложностей, например, ваше приглашение отправлено со стандартной ошибкой.

0 голосов
/ 17 января 2009

Попробуйте этот пример Perl-скрипта:

use Term::ANSIColor;
print "Hello "
  .color("green")
  ."world"
  .color("reset")
  ."\n"

или в виде однострочной оболочки:

perl -e 'use Term::ANSIColor; print "Hello ".color("green")."world".color("reset")."\n"'

Обратите внимание, что вам необходимо установить модуль Term :: ANSIColor .

...