我发现在 bash 中使用MANPAGER
变量将 vim 设置为我的手册页时出现问题。
最初,我使用以下所示的方法设置手册页:help manpager
:
export MANPAGER="vim -M +MANPAGER -"
man fzf
这将打开手册页,但不显示 ANSI 颜色,而是显示颜色代码,但是如果我只是运行
man fzf | vim -M +MANPAGER -
启用 ANSI 着色后,手册页可以正确显示。我尝试使用AnsiEsc·vim插件通过设置MANPAGER
变量来显示颜色,如下所示
export MANPAGER="vim -M +MANPAGER -c 'AnsiEsc' -"
然而,使用这种方法,ANSI 代码消失了,但文本不会变成彩色。我发现,由于某种原因,这是由于当您设置变量MANPAGER
然后显示手册页时,您的bashrc
设置不会被加载。我检查了这一点,因为我有一个别名,bashrc
它将命令映射v
到vim
,因此当我运行时:
man fzf | v -M +MANPAGER -
我得到与使用 运行相同命令相同的(有效)结果vim
。但是当我跑步时:
export MANPAGER="v -M +MANPAGER -"
man fzf
我收到错误:
man: can't execute v: No such file or directory
man: command exited with status 255: sed -e '/^[[:space:]]*$/{ N; /^[[:space:]]*\n[[:space:]]*$/D; }' | LESS=-ix8RmPm Manual p
age fzf(1) ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$PM Manual page fzf(1) ?ltline
%lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)$ MAN_PN=fzf(1) v -M +MANPAGER -
我的假设bashrc
在运行时未加载man
是否正确,如果是,有解决方案吗?
谢谢