Як я можу користуватися людиною без меншої кількості?


21

За замовчуванням manвикористовується lessдля виводу тексту. Як я можу сказати, що він просто виводиться на stdout? Мій емулятор терміналу має смугу прокрутки та функцію пошуку, і я хочу використовувати їх замість клавіш зі стрілками.

Відповіді:


31

Насправді він використовує все, що вказано в змінній оточення MANPAGERабо PAGER.

Залежно від вашої manреалізації та версії може бути також перемикач командного рядка, щоб вказати пейджер.

З реалізацією man-db я використовую всі наведені нижче способи роботи:

MANPAGER=cat man man

PAGER=cat man man

MANOPT='-P cat' man man

man -P cat man

Щоб встановити його назавжди, просто додайте його у свій ~/.bashrc(або інший файл ініціалізації, використовуваний вашою оболонкою):

export MANPAGER=cat

Це працює і з деякими більш старими manреалізаціями, хоча MANOPTспецифіка man-db:

export MANOPT='-P cat'

(Краще не встановлюйте PAGERтакий спосіб. Цим використовується і багато інших програм.)

Також може бути файл глобальної конфігурації. man-db має /etc/man_db.confабо /etc/manpath.config. Там ви можете встановити:

DEFINE    pager    cat

Але, на жаль, це враховується лише в тому випадку, якщо не встановлено MANPAGERжодного з PAGERних.


2
Гарна відповідь. Re: ~/.bashrc, Ви можете також обернути експорт в умовному , так це тільки встановлює пейджер , якщо це доречно термінал / Емулятор: if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi; очевидно, замініть xtermвідповідним емулятором.
Кевін

1
Насправді, це добре і за дизайном, що manpath.config враховується пізніше. І PAGER, і MANPAGER - це рівень користувача, де файл конфігурації є системним рівнем. Якщо системний рівень матиме перевагу, користувачі взагалі не могли би перекрити.
Пол де Вріезе

@PauldeVrieze, ти прав MANPAGER. Я використовував слово "на жаль" для того, що поведінка також стосується PAGER, яка є загальною настройкою (використовується багатьма інструментами), і я вважаю за краще, щоб вона не переосмислювала конкретні налаштування (використовуються лише одним інструментом), навіть якщо це один - системний рівень.
манатура

Якщо ви хочете змінити певний параметр для одного інструменту, ви завжди можете це зробити, створивши псевдонім, функцію оболонки або сценарій обгортки. Будь-який із них PAGER=cat manalias man='PAGER=cat MANPAGER=cat man'
склав

6

Просто труба вихід manдо cat?

man ls | cat   # useful use of cat

6
Зауважте, що залежно від manреалізації, що 1) збільшує помилку, 2) відображає коди формату troff у терміналі, 3) видаляє все форматування, 4) працює як очікувалося.
манатура

2
Я ніколи не бачив, як це робилося, крім 4.
Кіт Томпсон

@KeithThompson, manсхоже, macOS використовує встановлений пейджер, MANPAGERнавіть коли на виході є файл або труба. А якщо пейджер є less, то це все добре, тому що lessповодиться так, catколи вихід є трубою ... Але якщо ви використовуєте щось інше (наприклад, Vim, яке я використовую), то це не так добре.
муру

1

Спробуйте за допомогою цих команд генерувати вихід людини без пейджера.

  • man ls | cat (згенерована фіксована ширина)

  • man -P cat ls (згенерована змінна ширина)

Я був у системі GNU linux


1

Інший кут: подібний до відповіді Тоні.

Ви також можете перенаправити вихідний файл у файл і переглянути його улюбленим текстовим редактором або навіть додати до нього закладки, коментарі тощо.

man bash  > bashman.txt

У мене є копія сторінки bash man, а також просто розділи з управління потоком bash та прапори тесту bash, збережені як текстові файли в моєму каталозі bin, тому я можу завантажувати їх прямо в мій текстовий редактор (kate) для довідки, поки я написання баш сценаріїв.


Попередження: залежно від вашої системи та сторінки man, наведена вище команда може призвести до форматування інформації та керуючих символів у файлі.

Щоб цього уникнути, виконайте, як пропонується в LESS='+/^TIPS' man man:

To  get a  plain  text  version  of a man page, without backspaces and
underscores, try

  # man foo | col -b > foo.mantxt

1
@Wildcard - Дякую Я про це не знав.
Джо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.