Man 和 LANG 问题

Man 和 LANG 问题

我的 LANG=ru_RU.cp1251,所以如果手册页被翻译,我会在输出中得到垃圾。

问题出在‘cp1251’上,因为 /usr/share/man/ru 以不同的编码存储手册页:

  /usr/share/man/ru/man1/mc.1.gz 是 UTF-8
  /usr/share/man/ru/man1/mplayer.1.gz 是 koi8-r

此外,man 也不支持动态页面重新编码:

  $ ls -ld /usr/share/man/ru*
drwxr-xr-x+ 1 用户 root 0 于 2010 年 10 月 /usr/share/man/ru
drwxr-xr-x+ 1 用户 root 0 十月 13 10:10 /usr/share/man/ru.KOI8-R
drwxr-xr-x+ 1 用户 root 0 十月 13 10:10 /usr/share/man/ru.UTF-8

  $ test -f /usr/share/man/ru.KOI8-R/ex.1.gz && 确定
好的

  $ LANG=ru_RU.cp1251 man ex
... EN 输出 ...
  $ LANG=ru_RU.UTF-8 man ex
... EN 输出 ...

  $ LANG=ru.UTF-8-8 man ex
... !!RU 输出!! ...

因此人类不能从‘ru_RU’中去掉‘_RU’!

我只想查看 EN 手册页。根据“man 1 man”,我需要设置“LANG=C”,但我喜欢“LANG=ru_RU.cp1251”!

我尝试添加:

  朗C

到 /etc/man.conf,但收到警告:

  配置文件中无法识别的行(已忽略)
  朗C

在 bash 中我可以定义别名:

  $ 别名 man='LANG=C man'

但是 Emacs Mx man 怎么样?我需要写一个包装器并设置

  (setq 手册程序“LANG=C man”)

为了修复 MC 和 bash 的页面语言,我把

  别名 man='LANG=C man'

到 ~/.bashrc

似乎我涵盖了所有用例,但我有一个问题:

  • 是否可以为 man 设置 LANG 设置,而无需为所有其他应用程序(如 Emacs、MC)设置 LANG=C?我想在“man.conf”中查看选项
  • 为 /usr/share/man/ru/ 提供不同编码的文件是否正确?我认为软件包必须固定为 'ru.UTF-8'、ru.KOI8-R 路径。

相关内容