‘less’ 无法显示特殊字符

‘less’ 无法显示特殊字符

我在一些手册页中偶然发现了一些不好的特殊字符:

如果您的终端是“真正的”自动边距终端(它不允许在不滚动屏幕的情况下更新屏幕上的最后一个位置),请考虑使用终端的 termcap 版本,该版本已关闭自动边距。这将确保在任何情况下都能准确、最佳地更新屏幕。如今,大多数终端都有“神奇”边距(自动边距加上可用的最后一列)。这是 VT100 样式类型,非常适合屏幕。如果您所拥有的只是一个 [...]

我做了一些研究。man使用作为其显示工具,并且在我的环境中将$pager其设置为。因此显然无法显示手册页的特殊字符。lessless

我的终端(putty)设置为 Utf-8,还有$LANG=en_US.UTF-8。可能是什么问题?

答案1

首先查看您是否LESSCHARSET设置了环境变量。

echo $LESSCHARSET

如果尚未设置utf-8,则进行设置:

export LESSCHARSET="utf-8"

看看是否有帮助。您也可以尝试一个名为的寻呼机most,它至少在 Debian/Ubuntu 软件包存储库中可用。

答案2

尝试另一个寻呼机(例如most)。

PAGER=most man command_name

或者

man -P most command_name

或者

man --pager=most command_name

看看它是否能正确显示撇号。

可能是页面的源文件(如果有)man有问题,处理页面的工具man*roff)对字符的处理不正确,或者cat这些工具创建的对象文件(文件)不正确。在某些系统上,您可以重新生成man页面对象文件。

man使用以下选项之一(-W--where-cat或)运行--location-cat以查看cat文件所在的位置。尝试重命名(而不是删除 - 这样您可以在必要时将其放回)文件,cat以便生成一个新文件。

您可以尝试指定编码,看看是否有帮助。例如,尝试UTF-8和。UTF-16

man -E UTF-8 command_name

或者

man --encoding=UTF-8 command_name

最后运行mandb检查缓存一致性。

答案3

尝试-r显示原始字符的选项,例如:

less -r 文件.txt

相关内容