如何在鱼壳下获取彩色手册页?


12

似乎有一种使手册页显示为彩色的方法(请参阅此处。它涉及设置与less关联的环境变量并将这些定义添加到.bashrc。我尝试对鱼壳进行相同的操作config.fish,但是没有输出颜色。

如何在鱼壳中获取彩色手册页?




@ bodhi.zazen Fish使用set命令而不是export。但这并未使手册页显示为彩色。因此,我在上面的问题是:-)
Ashwin Nanjappa 2014年

您必须(从Arch Wiki)“最小化”或(再次从Arch Wiki)“设置”那些变量。

@ bodhi.zazen是的。我已经做到了。手册页中没有颜色:-(
Ashwin Nanjappa 2014年

Answers:


6

您可以通过以下命令设置配置,

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")  

7

如果您希望仅在查看手册页时添加这些颜色,而不是在查看的所有内容中添加这些颜色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://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

2
很好,谢谢!要变得更加腥,您可以使用set_color命令。例如:set -x LESS_TERMCAP_md (set_color -o red)set -x LESS_TERMCAP_me (set_color normal)
克里斯·克拉克

3

假设您较少使用传呼机,请将其放在~/.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"

不工作 我执行“ man ls”时会看到\ e [01字符串。
Ashwin Nanjappa 2014年

奇怪,我认为这直接来自我的配置文件。不过,由于我自己运行其他发行版,因此我实际上尚未在Ubuntu上试用过。也许您可以尝试set -x LESS="-R"在配置末尾添加内容?
bobbaluba 2014年

添加那没有帮助。仍在手册页中看到相同的\ e [01字符串。
Ashwin Nanjappa 2014年

1

可以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)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.