LINUX.ORG.RU

man bash и символ тильды

 man sh


0

1

Только что обнаружил, что у меня на man-странице bash используется символ ˜ 0x02DC, а с клавиатуры вводится ~ 0x7E.

Получается, открваешь man bash, хочешь найти, допустим =~, ну, и понятно, не находишь. Неудобно.

Это у всех так, или у меня man неправильный, или что-то с локалью или настройками groff?

★★★★★

У меня находит вот такие строки по =~:

An additional binary operator, =~, is available <...>

An array variable whose members are assigned by the =~ binary operator <...>

If set, bash changes its behavior to that of version 3.1 with respect to quoted arguments  to  the  [[  conditional  command's  =~ operator <...>
papin-aziat ★★★★★
()
Ответ на: комментарий от firkax

Не, не в man'ы, в groff. Нашёл коммит в gentoo от 2023, где пишут, что теперь надо в man'ах вместо обычной тильды 0x7e писать \(ti. По man groff — это «Basic Latin tilde», а нормальная ~ после groff превращается в «small tilde». Проверил, если в исходнике man-страницы поставить \(ti будет нормально.

Но, как-то править man-страницы неохото. Может можно как-то groff настроить?

mky ★★★★★
() автор топика
Ответ на: комментарий от dmitry237

Это точно 0x02dc, его можно скопировать, вставить в поиск в соседнем терминале и т.д.

Нашёл в новости от groff от середины 2023 года, что типа теперь всегда так и будет, если вывод в uft-8. И так и должно было быть давным давно.

А если у вас в man-странице написана ~ вместо \[ti], ^ вместо \[ha] и т.д., то исправляйте. Не хотите исправлять, поправьте файл /usr/share/groff/site-tmac/man.local:

.if '\*[.T]'utf8' \{\
.  char ' \[aq]
.  char - \-
.  char ^ \[ha]
.  char ` \[ga]
.  char ~ \[ti]
.\}

И, что интерестно, у меня в gentoo, в этом файле было так:

.if '\*[.T]'utf8' \{\
.  char \- \N'45'
.  char  - \N'45'
.\}
уж не знаю, дефолтный это файл от разработчиков, и они сами не знают, что char - уже переопределён, или это gentoo'шники с минусом боролись.

Да, гента у меня староватая, пока отредактировал этот файл, а с обновление, наверно, исходник man-страницы будет поправлен.

mky ★★★★★
() автор топика

У меня нашло в мане 007e и в вводе 007e, проверил.

Debian Sid без каких либо своих твиков системы.

Скорее всего просто man для bash так сгенерирован.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Да, спасибо, разобрался. Эту тему нужно было на 1-1,5 раньше создавать. Это с середины 2023 вылазили проблемы с тильдой и прочими символами, как версия groff обновилась.

mky ★★★★★
() автор топика