Могу ли я заставить `man` сопоставлять строчные буквы?


10

Когда я ищу man-страницы, поиск чувствителен к регистру, но только в отношении заглавных букв. Например, xбудет соответствовать, xа в Xто время как Xтолько совпадает x. Это man-dbверсия man, используемая в системах на основе fedora по умолчанию и доступная в других. man manговорит пейджер по умолчанию less -s. $LESSне определяется в окружающей среде, мой $PAGERпросто less, и у меня нет псевдонимов для меньших.

Это не поведение, когда я вызываю сам lessпо себе.

Есть ли способ заставить строчные буквы xсоответствовать только строчным xпри использовании man?


1
По умолчанию используется строгая чувствительность к регистру. То, что вы описали, звучит как ваша LESSпеременная окружения -i.
manatwork

1
Какая версия lessу вас есть? У вас есть псевдоним для less? Установлены ли LESS или LESSOPEN env? По умолчанию lessпоиск xтолько совпадений x, а неX
bsd

Разве у нас уже не было этого Q? Я думаю, что Хауке спросил это, я поищу это .... (slm возвращается до того, как 5 минут истекает в комментарии ...) Этот, не дуп, но кажется, что вы спрашиваете, нет? unix.stackexchange.com/questions/116395/...
ОДС

@slm, это была и моя первая реакция, но, поскольку владелец вопроса участвовал в этом вопросе, полагаю, он знает об этом.
manatwork

@manatwork echo $LESS= ничего. Обратите внимание, что регистр не учитывается, но он обеспечивает только чувствительность верхнего регистра. @bdowning alias | grep less= ничего. Просто заметил, что он применяется только через man(это mandb, кстати), однако. Я уверен, что я читал об этом раньше где-то ...
Златовласка

Ответы:


3

Человек зовет Меньше; Единственный контроль на уровне человека - это выбор опций для вызова Меньше.

Чувствительность к регистру при поиске у Less зависит от двух параметров

  • Если -Iв действительности, то поиски не чувствителен к регистру: либо aили Aмогут быть использованы , чтобы соответствовать как aи A.
  • Если -iдействует, но нет -I, тогда поиск выполняется без учета регистра, но только если шаблон не содержит заглавных букв.

Если вы установите -Iопцию по умолчанию для параметра Меньше, то все поиски будут учитываться без учета регистра даже на страницах руководства.

Man-db передает дополнительные параметры на пейджер через LESSпеременную окружения, которую Less интерпретирует так же, как параметры командной строки. Настройка жестко запрограммирована во время компиляции и начинается с -i. (Значение по "-ix8RmPm%s$PM%s$"состоянию на Man-db 2.6.2; P…$часть - строка приглашения.)

Если вы не хотите, чтобы при поиске в справочных страницах учитывался регистр, или если вы хотите, чтобы они всегда учитывали регистр, нет способа настроить это в самом man-db. Вы можете создать псевдоним manили скрипт-обертку, который управляет LESSпеременной enviroment, так как Man-db добавляет его содержимое к текущему значению, если оно присутствует:

alias man='LESS="$LESS -I" man'

Чтобы отключить эту -iопцию и, следовательно, сделать поиск всегда чувствительным к регистру по умолчанию на страницах руководства:

alias man='LESS="$LESS -+i" man'

Вы также можете жестко запрограммировать другое значение LESS, установив MANLESSпеременную среды, но если вы сделаете это, то manпросто установите LESSзначение MANLESS, вы потеряете пользовательскую строку заголовка («Страница руководства foo(42)») и другие полезности (в частности, сделаете обязательно -Rдля жирного и подчеркивания форматирования).


1

Это как less«S -i(переключатель командной строки)„чувствительно к регистру“режим работы (то есть, он по - прежнему чувствителен к верхнему регистру). Как указывает Жиль, использование этого скомпилировано в man-db.

В дополнение к способам, указанным в ответе Жиля WRT на установку псевдонима +-iили пользовательского параметра MANLESS, вы можете переключать строгое сопоставление регистра, когда открывается страница руководства -i(что включает и выключает переключатель); вы увидите немного «Case является существенным в поиске» сообщение и теперь xтолько матчи xи Xтолько матчи X.

Man-db manимеет -Iпереключатель, но это относится к поиску страницы руководства - например, по умолчанию man BASHвыдает страницу руководства по bash, а man -I BASHнет.


0

"Есть ли способ заставить строчные буквы xсоответствовать только строчным xпри использовании man?"

Вот один из способов

man -Tascii manpage |less

Я не знаю подробностей, но roffобработка выполняет разметку, и пейджер, кажется, соответствует неотмеченному тексту, даже если он отображает размеченный текст.
Очень сбивает с толку, надеюсь, nroffгуру может объяснить ход трубопровода.


Это создает беспорядок в моем терминале GUI (полный ESC[1mпоследовательностей типов).
Златовласка
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.