Как получить цветные страницы руководства под рыбой раковиной?

Кажется, есть способ заставить страницы справки отображаться в цвете (см. Здесь. Это включает в себя установку переменных среды, связанных с less, и добавление этих определений в .bashrc, Я пытался сделать то же самое в config.fish для раковины рыбы, но не получил цветовой выход.

Как получить цветные страницы руководства в оболочке рыбы?

5 ответов

Решение

Вы можете установить конфигурацию с помощью следующих команд:

set -x LESS_TERMCAP_mb (printf "\033[01;31m")  
set -x LESS_TERMCAP_md (printf "\033[01;31m")  
set -x LESS_TERMCAP_me (printf "\033[0m")  
set -x LESS_TERMCAP_se (printf "\033[0m")  
set -x LESS_TERMCAP_so (printf "\033[01;44;33m")  
set -x LESS_TERMCAP_ue (printf "\033[0m")  
set -x LESS_TERMCAP_us (printf "\033[01;32m")  

Если вы хотите, чтобы эти цвета добавлялись только при просмотре справочных страниц, а не для всего, что вы просматриваете в lessВы должны установить эти переменные в функции-обертке для man вместо того, чтобы положить их в свой config.fish,

Весь процесс заключается в создании нового файла в ~/.config/fish/functions/man.fishи внутри него определить функцию man который устанавливает необходимые переменные среды, затем вызывает оригинал man с помощью commandпередавая аргументы используя $argv,

Это моя версия функции оболочки:

~/.config/fish/functions/man.fish
function man --description "wrap the 'man' manual page opener to use color in formatting"
  # based on this group of settings and explanation for them:
  # http://boredzo.org/blog/archives/2016-08-15/colorized-man-pages-understood-and-customized
  # converted to Fish shell syntax thanks to this page:
  # http://Ask-ubuntu.ru/questions/522599/how-to-get-color-man-pages-under-fish-shell/650192

  # start of bold:
  set -x LESS_TERMCAP_md (set_color --bold red)
  # end of all formatting:
  set -x LESS_TERMCAP_me (set_color normal)

  # start of standout (inverted colors):
  #set -x LESS_TERMCAP_so (set_color --reverse)
  # end of standout (inverted colors):
  #set -x LESS_TERMCAP_se (set_color normal)
  # (no change – I like the default)

  # start of underline:
  #set -x LESS_TERMCAP_us (set_color --underline)
  # end of underline:
  #set -x LESS_TERMCAP_ue (set_color normal)
  # (no change – I like the default)

  command man $argv
end

Предполагая, что вы используете меньше как пейджер, поместите это в ~/.config/fish/config.fish:

set -x LESS_TERMCAP_mb (printf "\e[01;31m")
set -x LESS_TERMCAP_md (printf "\e[01;31m")
set -x LESS_TERMCAP_me (printf "\e[0m")
set -x LESS_TERMCAP_se (printf "\e[0m")
set -x LESS_TERMCAP_so (printf "\e[01;44;33m")
set -x LESS_TERMCAP_ue (printf "\e[0m")
set -x LESS_TERMCAP_us (printf "\e[01;32m")

Если ты видишь \e[0m и т.д., появляющиеся при просмотре справочной страницы, попробуйте также добавить эту строку:

set -x LESS "-R"

Можно использовать set_color вместо прямых последовательностей ANSI. Фактически, это позволяет вам использовать любой цвет, который вы хотите, используя 24-битные шестнадцатеричные цвета, например (set_color FF55AA),

set -x LESS_TERMCAP_mb (set_color brred)
set -x LESS_TERMCAP_md (set_color brred)
set -x LESS_TERMCAP_me (set_color normal)
set -x LESS_TERMCAP_se (set_color normal)
set -x LESS_TERMCAP_so (set_color -b blue bryellow)
set -x LESS_TERMCAP_ue (set_color normal)
set -x LESS_TERMCAP_us (set_color brgreen)

Я предлагаю очень хороший инструмент под названием batcat , предоставленный https://github.com/sharkdp/bat.

пакет доступен в Ubuntu с 20.04 («Focal») и Debian с августа 2021 года (Debian 11 — «Bullseye»), и его команда batcatкоторый является заменой кота с крыльями .

Из документа git:

batможно использовать в качестве раскрашивающего пейджера для , установив MANPAGERпеременная окружения:

       bash export MANPAGER="sh -c 'col -bx | batcat -l man -p'"

Также может потребоваться установка MANROFFOPT="-c"если у вас возникли проблемы с форматированием.

Если вы предпочитаете, чтобы это было объединено в новую команду, вы также можете использовать batman.

Обратите внимание, что синтаксис Manpage разработан в этом репозитории и требует доработки.

Также обратите внимание, что это не будет работать с Mandocs. manреализация.

Установите этот bat-пакет

      sudo apt install bat

Мне нравится тема Monokai, и поэтому я добавил эту команду в свой .zshrc:

      export MANPAGER="sh -c 'col -bx | batcat -l man -p --theme 'Monokai Extended''"

В случае, если вы используете fishshell добавьте эту строку в свой ~/.config/fish/config.fishфайл:

      set -x MANPAGER "sh -c 'col -bx | batcat -l man -p --theme 'Monokai Extended''"

Список установленных цветовых тем можно распечатать с помощью следующей команды

      batcat --list-themes

Вот скриншот man 3 printf

Другие вопросы по тегам