显示 groff 控制字符的人

显示 groff 控制字符的人

在我编译了更高版本的groff.例如,当我尝试查看 的groff手册页时:

GROFF(1)                    General Commands Manual                   GROFF(1)



ESC[1mNAMEESC[0m
       groff - front-end for the groff document formatting system

ESC[1mSYNOPSISESC[0m
       ESC[1mgroff ESC[22m[ESC[1m-abcegijklpstzCEGNRSUVXZESC[22m] [ESC[1m-d ESC[4mESC[22mcsESC[24m] [ESC[1m-D 
ESC[4mESC[22margESC[24m] [ESC[1m-f ESC[4mESC[22mfamESC[24m] [ESC[1m-F ESC[4mESC[22mdirESC[24m]
             [ESC[1m-I ESC[4mESC[22mdirESC[24m] [ESC[1m-K ESC[4mESC[22margESC[24m] [ESC[1m-L ESC[4mESC[22marg
ESC[24m] [ESC[1m-m ESC[4mESC[22mnameESC[24m] [ESC[1m-M ESC[4mESC[22mdirESC[24m] [ESC[1m-n ESC[4mESC[22mnumESC[24m] [ESC[1m-o ESC[4mESC[22mlistESC[24m]
             [ESC[1m-P ESC[4mESC[22margESC[24m] [ESC[1m-r ESC[4mESC[22mcnESC[24m] [ESC[1m-T ESC[4mESC[22mdevESC[24m] [ESC[1m-w ESC[4mESC[22mnameESC[24m] [ESC[1m-W ESC[4mESC[22mnameESC[24m] [ESC[4mfileESC[24m ...]
       ESC[1mgroff -h ESC[22m| ESC[1m--helpESC[0m
       ESC[1mgroff -v ESC[22m| ESC[1m--version ESC[22m[ESC[4moptionESC[24m ...]

ESC[1mDESCRIPTIONESC[0m
       This  document  describes the ESC[1mgroff ESC[22mprogram, the main front-end for the
       ESC[4mgroffESC[24m document formatting system.  The ESC[4mgroffESC[24m program and macro suite is
       the implementation of a ESC[1mroffESC[22m(7) system within the free software collec-
       tion GNU <http://www.gnu.org>.  The ESC[4mgroffESC[24m system has  all  features  of
:

答案1

您的man命令用于groff使用 ANSI 颜色转义序列 (ISO 6429) 格式化页面,并且您的分页程序(可能是moreless)正在扩展这些不可打印的字符,而不是将它们原样传递到终端屏幕。

要告诉less(例如)不要扩展这些 ANSI 序列,请使用-R--RAW-CONTROL-CHARS选项。您通常可以通过在环境变量中设置所需的选项LESS或使用PAGER环境变量来完成此操作:

$ LESS='-R' man groff
$ PAGER='less -R' man groff

它也可能是对底层的错误指令groff,导致groff(或grotty) 在您并不真正需要时发出 ANSI 转义。您可以man通过使用类似以下内容来告诉不要使用转义符:

$ man --ascii groff

手册页grotty详细讨论了解决问题的选项。

相关内容