Como obter páginas de manual coloridas sob casca de peixe?

12

Parece haver uma maneira de exibir as páginas do manual em cores (veja aqui . Envolve definir variáveis ​​de ambiente associadas a menos e adicionar essas definições a .bashrc. Tentei fazer o mesmo no config.fishshell do peixe, mas não obtive saída de cores.

Como obter páginas de manual em cores na casca do peixe?

Ashwin Nanjappa
fonte
@ bodhi.zazen Fish usa o comando set em vez de exportar. Isso não fez as páginas de manual aparecerem em cores. Daí a minha pergunta acima :-)
Ashwin Nanjappa
você precisa "definir" essas variáveis ​​(do wiki do arch) por menos ou (novamente do wiki do arch) mais.
Panther
@ bodhi.zazen Sim. Eu tinha feito isso. Não há cor nas páginas do manual :-(
Ashwin Nanjappa

Respostas:

6

Você pode definir a configuração pelos seguintes comandos,

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")  
eleven.i386
fonte
7

Se você deseja que essas cores sejam adicionadas apenas ao visualizar páginas de manual, não para tudo o que visualiza less, defina essas variáveis ​​em uma função de invólucro, em manvez de colocá-las no seu config.fish.

Todo o processo é criar um novo arquivo em ~/.config/fish/functions/man.fish, e dentro dele definir uma função manque define as variáveis ​​de ambiente necessárias, depois chama o original manusando command, passando argumentos usando $argv.

Esta é a minha versão da função wrapper:

~/.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://askubuntu.com/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
Rory O'Kane
fonte
2
Awesome thanks! E para ficar ainda mais suspeito, você pode usar o set_colorcomando por exemplo: set -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
Chris Clark
3

Supondo que você use menos como seu pager, coloque isso em ~/.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")

Se você vê \e[0metc aparecendo quando visualiza a página de manual, tente adicionar esta linha também:

set -x LESS "-R"
bobbaluba
fonte
Não está funcionando. Eu vejo as seqüências \ e [01 quando eu faço "man ls".
Ashwin Nanjappa
Estranho, acredito que isso foi direto do meu arquivo de configuração. Na verdade, eu ainda não tentei no Ubuntu, pois eu mesmo executava uma distro diferente. Talvez você possa tentar adicionar set -x LESS="-R"no final da sua configuração?
bobbaluba
Adicionando isso não ajudou. Ainda vendo as mesmas strings \ e [01 na página de manual.
Ashwin Nanjappa
1

É possível usar em set_colorvez de seqüências ANSI diretas. De fato, isso permite que você use qualquer cor que desejar, usando escapes hexadecimais de cores de 24 bits, como (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)
Konrad Borowski
fonte