![Man 和 LANG 问题](https://linux22.com/image/1293102/Man%20%E5%92%8C%20LANG%20%E9%97%AE%E9%A2%98.png)
我的 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 路径。