Чи можу я змусити `man` зробити відповідність малих регістрів?


10

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

Це не та поведінка, коли я посилаюсь lessсамостійно.

Чи все-таки примушувати малі літери xпідходити лише до малих літер xпід час використання man?


1
За замовчуванням - сувора чутливість регістру. Те, що ви описали, звучить як LESSзмінна середовища -i.
манатура

1
Яка у lessвас версія ? У вас встановлений псевдонім less? Чи встановлено менше або менше LESSOPEN середовищ? За замовчуванням lessшукайте xлише сірники x, неX
bsd

Хіба ми вже не мали цього Q? Я думаю, що Хоуке запитав це, я буду шукати його .... (слм повертається до закінчення 5 хв. На коментарі ...) Цей, а не дубль, але здається, що ви просите, ні? unix.stackexchange.com/questions/116395/…
slm

@slm, це була моя перша реакція, але оскільки власник питання брав участь у цьому питанні, я думаю, він знає про це.
манатура

@manatwork echo $LESS= нічого. Зауважте, що це не стосується нечутливості - але це лише застосовує чутливість верхнього регістру WRT. @bdowning alias | grep less= нічого. Щойно помічено, він застосовується лише через man(це mandb, btw). Однак Я впевнений, що десь читав про це десь ...
goldilocks

Відповіді:


3

Людина кличе менше; єдиний контроль на рівні чоловіка - це вибір варіантів, з яких можна дзвонити менше.

Чутливість регістру в пошуку менше контролюється двома варіантами.

  • Якщо -Iце дійсно, то пошуки не залежать від регістру: aабо Aможуть бути використані для відповідності обом aі A.
  • Якщо -iце дійсно, але немає -I, то пошуки не залежать від регістру, але лише якщо шаблон не містить великої літери.

Якщо зробити -Iпараметр "Менше" за замовчуванням, то всі пошукові запити будуть нечутливими до регістру навіть на сторінках "man".

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

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

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

Щоб вимкнути цю -iопцію і таким чином зробити пошук завжди залежним від регістру на сторінках man:

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

Ви також можете жорстко кодувати інше значення LESS, встановивши MANLESSзмінну середовища, але якщо ви це зробите, то manпросто встановіть LESSзначення MANLESS, ви втратите користувацький рядок заголовка ("Сторінка вручну foo(42)") та інші товари (зокрема, зробіть обов'язково включити -Rдля жирного та підкреслення форматування).


1

Це як less«S -i(перемикач командного рядка)" чутливо до регістру "режим роботи (тобто, він по - , як і раніше чутливий до верхнього регістру). Як вказує Жилл, використання цього збирається в man-db.

На додаток до способів, вказаних у Gilles answer WRT, встановлюючи псевдонім +-iабо звичай MANLESS, ви можете перемикати сувору відповідність регістру, як тільки відкривається сторінка man -i(що вмикає та вимикає); ви побачите невелике повідомлення "Випадок є важливим у пошукових запитах", і тепер xлише збіги xта Xлише збіги X.

Man-db's manмає -Iкомутатор, але це стосується пошуку сторінки man - наприклад, за замовчуванням man BASHви отримаєте сторінку керівництва bash, тоді як man -I BASHне буде.


0

"Чи все-таки примушувати малі xрегістри xпід час використання відповідати лише малі літери man?"

Ось один із способів

man -Tascii manpage |less

Я не знаю деталей горі, але roffобробка виконує розмітку, і пейджер, здається, відповідає немеченому тексту, навіть якщо він відображає розмічений текст.
Дуже заплутаний, сподіваємось, nroffгуру може пояснити роботу.


Це створює безлад у моєму терміналі GUI (повно ESC[1mтипових послідовностей).
goldilocks
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.