运行 manpager 时未加载 Bashrc

运行 manpager 时未加载 Bashrc

我发现在 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它将命令映射vvim,因此当我运行时:

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是否正确,如果是,有解决方案吗?

谢谢

相关内容