Цветные страницы man не работают на gentoo

8

У меня проблема с использованием этих методов для получения цветов на моих страницах руководства в gentoo. Я уже спрашивал на форумах gentoo, но это все еще не работает, и комментарии в отчете об ошибке ( Bug 184604 ) тоже не работают. Может ли кто-нибудь помочь мне получить цвета на моих страницах руководства?

РЕДАКТИРОВАТЬ : Да, я использую меньше как пейджер и urxvt-Unicode в качестве эмулятора терминала

EDIT2 :

Я уже спрашивал на форумах gentoo, но это не помогло, вот ссылка: http://forums.gentoo.org/viewtopic-t-819833-start-0.html .

Vicfred
источник
вы используете меньше как ваш пейджер правильно?
ксенотеррацид
Какой эмулятор терминала вы используете, и что echo $TERMотображает?
Жиль "ТАК - перестань быть злым"

Ответы:

21

Может быть ряд проблем.

Видя, как вы используете zsh, попробуйте вставить это в ~/.zshrc:

export LESS_TERMCAP_mb=$'\E[01;31m'
export LESS_TERMCAP_md=$'\E[01;31m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_se=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;47;34m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
export LESS=-r

Затем откройте новое окно терминала и попробуйте запустить

man ls

если это не работает, выполните каждое из следующих действий, чтобы выяснить, в чем проблема:


Номер 1

typeset -p LESS_TERMCAP_md | cat -v

должен напечатать

typeset -x LESS_TERMCAP_md="^[[01;31m"

а также

typeset -p LESS

должен напечатать

typeset -x LESS="-r"

если нет, вы помещаете export LESSвещи в неправильный файл.


Номер 2

echo "${LESS_TERMCAP_md}red${LESS_TERMCAP_me}"

должен напечатать

red

в красном цвете. Если это не так, значит, что-то не так с настройками вашего терминала. Проверьте настройки терминала (например ~/.Xresources) или попробуйте запустить gnome-terminalили xtermи посмотрите, работает ли это.


Номер 3

echo -E "a^Ha" | LESS= less -r

( ^Hнеобходимо ввести, нажав Ctrl+, Vзатем Ctrl+ H)

должен напечатать

a

в красном. Если это не так, пожалуйста, запустите эти

type less
less --version

и вставьте вывод обратно в ваш вопрос.


Номер 4

bzcat /usr/share/man/man1/ls.1.bz2 | \
    /bin/sh /usr/bin/nroff -mandoc -Tutf8  | head -n 5 | cat -v

должен напечатать

LS(1)                            User Commands                           LS(1)



N^HNA^HAM^HME^HE

(обратите внимание, ^Hкак в шаге № 3)

если он печатает что-то вроде:

LS(1)                            User Commands                           LS(1)



^[[1mNAME^[[0m

вместо этого вам нужно будет найти способ отключить «escape-последовательности sgr». Проще всего попробовать добавляет export GROFF_NO_SGR=1к .zshrc, но есть и другие способы фиксации этого.


Номер 5

bzcat /usr/share/man/man1/ls.1.bz2 | \
    /bin/sh /usr/bin/nroff -mandoc -Tutf8 | less

должен отображать lsсправочную страницу с цветами.


man ls

теперь должен работать!

Mikel
источник
Я использую zsh, я не мог опубликовать это раньше, потому что я был новым пользователем forum.gentoo.org/viewtopic-t-819833-start-0.html, также набрал -p-МЕНЬШЕ напечатал это: "typeset: такой переменной нет : LESS "и насчет числа 5, ls.1.gz нет, но есть ls.1.bz2, но он печатает это" gzip: /usr/share/man/man1/ls.1.bz2: не в формате gzip " остальные опции работают хорошо, но у меня до сих пор нет цветных справочных страниц.
Vicfred
typeset -p LESSне работает ваша проблема. Но видя, как вы используете zsh, вы должны положить export LESS=-rв свой ~/.zshrc, а не в ~/.bashrc. Пожалуйста, сделайте это, затем попробуйте эти шаги снова.
Микель
И изменить zcat /usr/share/man/man1/ls.1.gzна bzcat /usr/share/man/man1/ls1.bs2.
Микель
Я обновил инструкции, основываясь на информации, которую вы только что предоставили.
Микель
7
экспорт GROFF_NO_SGR = 1 работал, спасибо, не могли бы вы указать мне некоторые ссылки на это? Вы были единственным, кто на самом деле дал другой ответ.
Vicfred
3

Прочитав ответ Mikels, он очень исчерпывающий и, надеюсь, будет работать на всех системах, но, вероятно, для меня это излишне (в том числе для системы gentoo).

Итак, вот результат для людей, которые очень "делали долго, не читали" со всеми этими махинациями.

Голый минимум, который я мог сделать, чтобы получить цветные страницы Man, выглядит следующим образом:

LESS_TERMCAP_md=$'\E[01;31m' LESS_TERMCAP_me=$'\E[0m' GROFF_NO_SGR=1 man man

Это делает текст, который раньше был только жирным, жирным и красным . (Красный цвет обозначается как «31» в LESS_TERMCAP_md)

LESS_TERMCAP_se=$'\E[0m' LESS_TERMCAP_so=$'\E[01;32m'

Эти 2 правила управляют форматированием отображения текущего номера строки и приводят его к отображению зеленым цветом.

LESS_TERMCAP_us=$'\E[04;33m' LESS_TERMCAP_ue=$'\E[0m'

Эти 2 правила перемещают все, что было ранее подчеркнуто, в подчеркнутое и желтое . (04 подчеркнут, 33 - желтый)

Кент Фредрик
источник