`less` не может отображать специальные символы

Я наткнулся на плохих специальных персонажей на некоторых страницах:

Если ваш терминал является "истинным" терминалом с автоматическим запасом (он не позволяет<80><99>обновлять последнюю позицию на экране без прокрутки экрана), рассмотрите вариант использования своего терминала your<80><99>s termcap, у которого автоматические поля отключены. Это обеспечит точное и оптимальное обновление экрана при любых обстоятельствах. В настоящее время большинство терминалов имеют "магические" поля (автоматические поля плюс последний используемый столбец). Это стиль VT100 и идеально подходит для экрана. Если все, что вы<80><99>получили, это [...]

Я сделал некоторые исследования. man использования $pager в качестве инструмента отображения, и это установлено less в моем окружении. Так видимо less не может отображать специальные символы man-страниц.

Мой терминал (замазка) установлен в Utf-8, и $LANG=en_US.UTF-8, Что может быть не так?

2 ответа

Посмотрите сначала, если у вас есть LESSCHARSET переменная окружения установлена.

echo $LESSCHARSET

Если это не так utf-8 уже тогда установите его:

export LESSCHARSET="utf-8"

Посмотрите, поможет ли это. Вы также можете попробовать пейджер под названием most, он доступен по крайней мере в репозиториях пакетов Debian/Ubuntu.

Пытаться -r опция для отображения необработанных символов, пример:

менее -r file.txt

Попробуйте другой пейджер (например, 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 проверить целостность кэша.

Другие вопросы по тегам