joe

package: joe

title: joe(1)

summary: Joe's Own Editor

text:
# joe(1)

## Название
joe - Joe's Own Editor

## Использование
joe [global-options] [ [local-options] filename ]...

jstar [global-options] [ [local-options] filename ]...

jmacs [global-options] [ [local-options] filename ]...

rjoe [global-options] [ [local-options] filename ]...

jpico [global-options] [ [local-options] filename ]...

jice [global-options] [ [local-options] filename ]...

## Описание
JOE - мощный текстовый редактор. Он обладает экранным пользовательским интерфейсом, подобно многим дружественным пользователю редакторам для PC. Пользователи WordStar от Micro-Pro или "Турбо"-языков от Borland почувствуют себя с ним как дома. В то же время JOE является полнофункциональным текстовым экранным редактором для UNIX, и обладает массой функций для редактирования программ и текстов.

JOE также эмулирует несколько других редакторов. JSTAR - это имитация WordStar со многими расширениями JOE. JPICO - имитация текстового редактора PICO, используемого в почтовой системе PINE, но со многими расширениями и улучшениями. JMACS - это имитация GNU-EMACS. JICE - настроенный на использование функциональной клавиатуры в традиционном PC-стиле редактор, рекомендуемый для использования в комплексе программ бухучета iceB. RJOE - урезанная версия JOE, которая позволяет редактировать только файлы, указанные в командной строке.

Хотя JOE выглядит ка шесть различных редакторов, он в действительности представляет собой единственную исполняемую программу, но с шестью разными именами. Имя редактора вместе с суффиксом "rc" составляют имя инициализационного файла JOE, который определяет внешние особенности редактора.

JOE - свободная программа; вы можете распространять и/или модифицировать его в соответствии с положениями GNU General Public License, опубликованной Free Software Foundation. У меня нет планов по превращению JOE в коммерческий или share-ware продукт. JOE доступен через Internet по адресу www.sourceforge.net/projects/joe-editor.

## Использование
Для запуска редактора введите имя joe, можно со следующими за ним именами редактируемых файлов. Каждому имени файла могут предшествовать ключи локальных опций (ниже см. таблицу локальных опций). В командной строке также могут быть указаны ключи глобальных опций, воздействующие на редактор в целом (ниже см. таблицу глобальных опций). Если вы редактируете новый файл - можете указать его имя либо в командной строке при запуске редактора, либо из редактора при сохранении файла. Предоставляется специальный синтаксис имени файла для редактирования вывода программ, стандартного ввода/вывода или участков файлов или устройств. Подробности см. ниже в разделе Имена файлов.

Запустив редактор, вы можете вводить в нем текст и использовать специальные управляющие последовательности для выполнения других задач редактирования. Описание того, что выполняет та или другая последовательность, вы можете найти ниже в этом справочом руководстве либо набрав в редакторе ^K H для получения подсказки.

Замечания по некоторым общепринятым договоренностям:

^ значит, что вы удерживаете клавишу Control при нажатии указанной далее клавиши (аналогично тому, как работает Shift для ввода буквы верхнего регистра). Некоторые управляющие последовательности дублируются другими клавишами, так что вам не всегда обязательно нажимать Control: ESC работает как ^[, Del - как ^?, Backspace - ^H, Tab - ^I, Return или Enter - это ^M и Linefeed может использоваться вместо ^J. На некоторых клавиатурах отдельные управляющие клавиши могут не работать. ^_, ^^ и ^@ обычно вводятся без нажатия Shift (т.е., пробуйте ^-, ^6 и ^2). На других клавиатурах эти клавиши могут быть переназначены. Попробуйте: ^., ^, и ^/. ^ПРОБЕЛ обычно можно использовать вместо ^@. ^\ и ^] интерпретируются многими коммуникационными программами, включая telnet и kermit. В этом случае вам придется нажать данную клавишу дважды, чтобы прорваться через коммуникационную программу.

После нажатия ^K H в верхней части экрана появится первое окно подсказки. Вы можете продолжать вводить и редактировать текст, пока оно там находится. Для листания подсказки используйте ^[, и ^[. (т.е., ESC , и ESC .). Нажмите ^K H снова для закрытия окна подсказки.

Вы можете настроить раскладку клавиатуры, окна подсказки и различное поведение редактора, скопировав инициализационный файл JOE (обычно /etc/joe/joerc) в .joerc в вашей домашней директории и затем отредактировав его. Ниже см. раздел joerc.

Чтобы использовать JOE в качестве редактора по умолчанию для e-mail и News, вам необходимо установить переменные среды EDITOR и VISUAL в стартовом командном файле вашего шелла (.cshrc или .profile) так, чтобы они ссылались на JOE (joe обычно располагается в /usr/bin/joe).

Также имеются некоторые специальные параметры выполнения, которые, возможно, придется установить, в частности, если экран вашего терминала изменяется не так, как вы этого ожидаете. См. раздел Переменные среды ниже.

## Опции командной строки
В командной строке могут быть указаны следующие глобальные опции:

-asis

Символы с кодами большими, чем 127, будут передаваться на терминал как есть, вместо преобразования их в соответствующие символы с кодами меньшими 128. Если это не срабатывает - проверьте ваш терминальный сервер.

-backpath path

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

-baud nnn

Установить скорость передачи для оптимизации экранного вывыода. Joe будет вставлять межсимвольные паузы для скоростей ниже 19200, что позволяет обойти терминальную буферизацию и прерывать экранный вывод клавиатурным вводом. Команды сколлинга не будут использоваться при указании скорости 38400 бод. Это полезно при использовании X-терминалов и экранов консоли, которые не подключены через последовательную линию.

-beep

Joe будет издавать звонок в случае неправильных команд и по достижению курсором границ ввода.

-columns nnn

Устанавливает количество колонок на экране.

-csmode

Продолженный режим поиска: команда поиска, следующая за первой, будет продолжать поиск заданного ранее образца, а не запрашивать новый. Это полезно для команд ^[S и ^[R, и когда joe изображает из себя emacs.

-dopadding

Joe обычно предполагает наличие какого-либо протокола управления потоком между ним и терминалом. Если никакой протокол не используется - данная опция заставляет joe выводить на терминал дополнительные ^@ как указано в termcap-описании терминала. Дополнительные ^@ дают возможность терминалу закончить длительные терминальные команды.

-exask

Эта опция дает возможность проверить имя файла, сохраняемого по ^KX.

-force

Эта опция обеспечивает обязательное добавление перевода строки в конец сохраняемого файла.

-help

Если указана эта опция - редактор будет стартовать с открытым окном подсказки.

-keepup

Обычно поля строки состояния, в которых отображается номер позиции и префикс управляющей последовательности, обновляются раз в секунду для уменьшения нагрузки на процессор, но в случае указания этой опции обновление будет производиться по каждому нажатию клавиши.

-lightoff

Если данная опция указана - отметка блока будет сниматься после любой операции над блоком.

-lines nnn

Устанавливает количество строк экрана.

-marking

Текст между началом блока и курсором будет подсвечиваться (используйте вместе с -lightoff и модифицированным файлом joerc для получения отметки блока в стиле "брошенного якоря").

-mid

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

-nobackups

Эта опция запрещает создание файлов резервных копий.

-nonotice

Эта опция запрещает вывод информации о копирайте при запуске редактора.

-nosta

Эта опция запрещает отображение строки состояния вверху экрана. Понадобится, если вы хотите видеть на экране только ваш текст или используете vt52.

-noxon

Пытается выключить обработку ^S/^Q. Полезно, когда JOE изображает из себя WordStar или EMACS.

-orphan

Когда данная опция активна, дополнительные файлы в командной строке будут помещаться в скрытых буферах, а не в отдельных окнах. Полезно, когда JOE изображает из себя EMACS.

-pg nnn

Определяет количество строк, оставляемых на эране после PgUp/PgDn (^U/^V). Если указано значение -1 - остается пол-экрана.

-skiptop nnn

Не использовать верхние nnn строк экрана. Полезно, когда joe используется в качестве BBS-редактора.

Каждая из этих опций может также быть определена в файле joerc. Кроме того, опции NOXON, BAUD, LINES, COLUMNS и DOPADDING могут быть определены в виде переменных среды.

Переменная среды JOETERM может быть установлена для замены обычной переменной среды TERM для определения типа вашего терминала.

Следующие опции могут быть указаны перед каждым именем файла в командной строке:

+nnn

Курсор при старте размещается на строке с указанным номером.

-crlf

Joe использует CR-LF в качестве завершителя строки вместо просто LF. Для редактирования файлов из MS-DOS или VMS.

-wordwrap

Joe переносит слово на новую строку по достижению правого края.

-autoindent

При нажатии Enter в конце строки с отступом этот отступ переносится в начало новой строки.

-overwrite

Ввод замещает существующие символы, а не вставляется перед ними.

-lmargin nnn

Устанавливает левую границу.

-rmargin nnn

Устанавливает правую границу.

-tab nnn

Устанавливает ширину табуляции.

-indentc nnn

Устанавливает символ заполнения для ^K, и ^K. (32 - ПРОБЕЛ, 9 - TAB).

-istep nnn

Устанавливает шаг перемещения для ^K, и ^K..

-linums

В начале каждой строки выводится ее номер.

-rdonly

Только читать файл.

-keymap name

Использовать альтернативную секцию файла joerc для определения клавиатурных управляющих последовательностей.

Эти опции также могут быть определены в файле joerc. Они могут быть установлены в зависимости от расширения имени файла. Для программ (с расширениями .c, .h или .p) обычно включается автооотступ. Перенос слов разрешен для всех прочих файлов, кроме инициализационных rc-файлов.

## Редактирование

### Основы редактирования
Когда вы вводите символы в редакторе, они обычно вставляются в редактируемый файл (или добавляются к нему, если курсор стоит в конце файла). Это - нормальный режим работы редактора. Если вы хотите заменить некоторый существующий текст - можете удалить его до или после ввода нового текста. Для удаления текста может использоваться клавиша Backspace: поместите курсор справа от текста, который требуется удалить и нажмите Backspace нужное количество раз.

Нажатие Enter или Return вызывает вставку разрыва строки. Например, если курсор находился всередине строки и вы нажали Enter, эта строка будет разрезана на две, и курсор будет находиться вначале второй строки. Нажатие Backspace в начале строки приведет к удалению предыдущего разрыва строки.

Для перемещения по файлу используйте клавиши стрелок. Если на вашей клавиатуре таких клавиш нет (или они почему-то не работают) - используйте ^F для перемещения вперед (вправо), ^B - для перемещения назад (влево), ^P - на предыдущую строку (вверх), и ^N - на следующую (вниз). Клавиши стрелок вправо и влево просто перемещают курсор на один символ вправо или влево по тексту за раз: если вы находитесь в начале строки и нажмете стрелку влево - то окажетесь в конце предыдущей строки. Нажатие клавиш стрелок вверх и вниз вызывает перемещение курсора на столько символов, чтобы оказаться в той же позиции предыдущей или последующей строки, в которой находились в исходной строке.

Если вы желаете сделать отступ перед вводом текста - можете использовать клавишу TAB. Она вставляет в текст специальный управляющий символ, который заставляет следующие за ним символы вводиться с начала следующего табулостопа (TAB STOP). Табулостопы обычно располагаются через каждые 8 позиций, но это может быть изменено с помощью команды ^T D. Программисты на языках PASCAL и C часто располагают табулостопы в каждой 4-ой позиции.

Если по каким-либо причинам экран вашего терминала сбивается (например, при получении сообщения о прибытии почты от программы biff), вы можете потребовать от редактора перерисовать экран - нажатием ^R.

Имеются и другие команды для удаления текста и перемещения по файлу. Например, можно нажать ^D для удаления символа в позиции курсора вместо удаления назад, как это делает клавиша Backspace. ^D также удаляет разрыв строки, если курсор находится в конце строки. Нажмите ^Y для удаления всей строки в позиции курсора или ^J для удаления от курсора до конца строки.

Нажмите ^A для перемещения курсора в начало текущей строки. Нажмите ^E для перемещения курсора в конец строки. Нажатие ^U или ^V приведет к скроллированию на полэкрана вверх или вниз. "Скроллирование обозначает, что что текст на экране перемещается, но курсор остается в одной и той же позиции относительно экрана. Нажмите ^K U или ^K V для перемещения в начало или конец файла. Другие команды удаления и перемещения вы можете найти на экране подсказки редактора.

Если вы сделали ошибку - можете отменить последнее действие нажатием ^_. На большинстве клавиатур вам потребуется прото нажать ^- для получения ^_, но на некоторых вам понадобится для этого одновременно удерживать Shift и Control. Если вы случайно ваполнили слишком много отмен - можно отменить предыдущую отмену по нажатию ^^ (для этого на большинстве клавиатур следует просто нажать ^6).

Если вы находитесь в одной позиции файла, а необходимо временно просмотреть или отредактировать другой участок текста - вы сможете вернуться в исходную позицию по нажатию ^K -. Эта команда возвратит вас в то место, где были выполнены последние изменения в файле. Вы можете перемещаться по местам изменений с помощью ^K - и ^K =, так же, как вдоль истории изменений с помощью команд "отмена" и "отмена отмены".

Когда вы закончите редактирование файла - нажмите ^K X для выхода из редактора. Если вы не редактировали ранее существовавший файл - у вас будет запрошено имя, под которым вы хотите этот файл сохранить.

Когда вы редактируете файл - в действительности изменению подвергается только его копия. Так что если вы решите, что изменения, сделанные во время данного сеанса редактирования, вам не нужны - можете нажать ^C для выхода из редактора без их сохранения.

Если вы отредактировали файл и сохранили изменения - в текущей директории будет создана резервная копия ("backup"), имя которой формируется путем добавления символа ~ в конец имени редактируемого файла, и содержащая исходную версию этого файла.

### Переносы и форматирование
Если вы будете вводить на правом краю экрана на программу на языке C или PASCAL - экран будет скроллироваться вправо для того, чтобы удерживать на нем текущее положение курсора. Если вы будете вводить на правом краю данные в обычный файл (имя которого не закнчивается ни на следующую строку, так что вам не обязательно нажимать Enter. Это называется режимом автопереноса. Перенос слов может быть разрешен или запрещен с помощью команды ^T W . Инициализационный файл JOE обычно настраивается так, чтобы этот режим включался для всех файлов, не являющихся текстами программ. Смотрите ниже раздел joerc - как изменять это и другие умолчания.

За исключением случая режима автопереноса, JOE не хранит абзацы отформатированными, как это делают некоторые текстовые процессоры. Вместо этого если вам потребуется отформатировать абзац - нажмите ^K J. Данная команда "выравнивает" абзац, в котором находится курсор, пытаясь разместить в одной строке столько слов, сколько возможно. В данном случае абзацем считается часть текста, ограниченная сверху и снизу пустыми строками.

Границы, в которых JOE выполняет форматирование абзаца и автоперенос слов, могут быть установлены с помощью команд ^T L и ^T R. Если левая граница установлена в значение, отличное от 1, то кода вы начинаете вводить данные с начала строки - курсор сразу перепрыгнет на указанную левую границу.

Если вы желаете центрировать строку в указанных границах - используйте команду ^K A.

### Режим замещения
Иногда утомительно удалять старый текст перед вставкой нового или после нее. Это случается, например, когда вы заполняете данные в таблице и вынуждены следить за положением правого края этой таблицы. В таких случаях вы можете перевести редактор в режим замещения с помощью последовательности ^T T. Если вы находитесь в данном режиме - вводимые символы замещают собой существующие. Кроме того, Backspace просто выполняет перемещение влево вместо удаления расположенного там символа, если курсор находился не в конце и не в начале строки. Режим замещения не является общепринятым при электронной обработке текстов, поэтому рекомендуется вернуться к режиму вставки так скоро, как это возможно, нажав ^T T еще раз.

Если вам необходимо выполнить вставку во время нахождения в режиме замещения - нажмите ^@. Это приведет к вставке в текст одиночного ПРОБЕЛА.

### Управляющие и Мета- символы
Каждый символ представляется некоторым числовым кодом. Например, кодом символа 'A' является 65, а код '1' - 49. Все символы, которые вы обычно видите, имеют коды в диапазоне 32 - 126 (данное соответствие между символами и их кодами называется символьным набором ASCII). Коды вне этого диапазона, от 0 до 255, обычно не отображаются, но иногда имеют некоторое специальное значение. Символ с кодом 10, например, используется для обозначения конца строки. Вы можете ввести эти неотображаемые управляющие символы, нажав сначала `, а затем - введя символ из диапазона @ A B C ... X Y Z [ ^ ] \ _ для получения кодов 0 - 31, и ? для получения 127. Например, если вы нажмете ` J - выполнится вставка символа разрыва строки, а если нажмете ` I - вставится символ табуляции (то же самое делает клавиша TAB). Полезный управляющий символ - 12 (` L), который заставляет большинство принтеров выполнить прогон страницы. Вы сможете заметить, что JOE выводит этот символ как подчеркнутое L. Вы можете вводить символы с кодами более 127, называемые мета-символами, нажав сперва ^\. Это добавит 128 к коду следующего (возможно управляющего) введенного символа. JOE выводит символы с кодами большими, чем 128, в инверсном изображении. В некоторых языках, имеющих больше символов, чем в английском, метасимволы используются для остальных букв ихнего алфавита. Вам придется перевести редактор в режим ASIS (описан далее), чтобы эти символы передавались на терминал без преобразования. (Прим. переводчика: поскольку для всех кодовых наборов с кириллицей так и происходит - в большинстве дистрибутивов, используемых на территории бывшего СССР, режим ASIS для JOE включается по умолчанию).

### Запросы
Если вы нажмете TAB во время любого запроса имени файла - joe попытается по возможности дополнить вводимое вами имя. Если он не сможет этого сделать из-за того, что возможно более одного варианта дополнения - joe издаст звонок. Если вы нажмете TAB еще раз - будет предложен список дополнений. Вы сможете использовать клавиши стрелок для перемещения по этому меню и нажать ENTER или ПРОБЕЛ для выбора элемента. Если вы нажмете первую букву одного из элементов списка - он будет выбран, или, если более одного элемента имеют одинаковую первую букву - курсор будет прыгать по этим элементам. Если вы выберете поддиректорию или .. - имя директории добавится к запросу и новая директория будет загружена в меню. Вы можете нажать Backspace для возврата к предыдущей директории.

Большинство запросов ведут историю обращения к ним. Вы можете перемещаться по этим историям с помощью клавиш-стрелок вверх и вниз.

Запросы в действительности являются однострочными окнами без строки состояния, так что вы можете использовать в нем любые команды редактирования. История запроса в действительности представлена разными строками в одном и том же "файле запроса". Поэтому вы можете выполнять поиск в истории запроса с помощью обычной команды ^K F.

Поскольку запросы являются окнами - вы также можете переключаться между ними с помощью ^K P и ^K N.

### Где я?
Нажмите ^K ПРОБЕЛ для получения отчета JOE о номере строки и колонки, а также номере текущего байта в файле, в последней строке экрана. Также показывается код текущего символа. Вы можете настроить редактор так, чтобы номер текущей строки и/или колонки постоянно отображался в строке состояния, поместив специальные управляющие последовательности в настроечную строку строки состояния. Более подробная информация по этому вопросу приведена в файле joerc.

### Операции над файлами
Вы можете нажать ^K D для сохранения текущего файла (возможно, под именем, отличающимся от оригинального). После того, как файл сохранен - можете нажать ^K E для редактирования другого файла.

Если вы желаете сохранить только отдельную часть файла - см. ниже раздел Блоки.

Если вы желаете включить другой файл в редактируемый - используйте для его вставки команду ^K R.

### Временный приостанов редактора
Если вам необходимо временно приостановить редактор и вернуться в шелл - нажмите ^K Z. Вы можете сделать это, к примеру, для того, чтобы прервать редактирование и ответить на почтовое сообщение или почитать man page. Для возврата в редактор вам надо будет выполнить команду fg или exit (вам будет сказано какую именно, когда вы нажмете ^K Z).

### Поиск текста
Нажмите ^K F, чтобы выполнить поиск фрагмента текста (строки) вперед или назад. У вас будет запрошен образец поиска. После нажатия Enter вы получите запрос на ввод опций поиска. Вы можете просто нажать Enter еще раз, чтобы редактор сразу начал поиск вперед, или можете ввести одну или больше из следующих опций:

b

Поиск назад, а не вперед.

i

Не различать при поиске символы верхнего и нижнего регистров. Обычно считается, что они различны.

nnn

(где nnn - число) Если вы введете число - JOE найдет n-ное вхождение искомого текста. Это полезно для перехода в нужные места внутри файлов, структурированных некоторым определенным образом.

r

Замещать текст. Если вы введете опцию r, далее у вас будет запрошен замещающий текст. Каждый раз при нахождении текста у вас будет запрашиваться - желаете ли вы выполнить его замещение. Вы можете нажать: y для замещения текста и выполнения дальнейшего поиска, n - чтобы не замещать текст, но продолжать поиск, r - для замены всех последующих вхождений далее по файлу без дополнительных запросов на подтверждение, или ^C для прекращения поиска и замены.

Вы можете нажать ^L для повторения предыдущего поиска.

### Регулярные выражения
При поиске текста в качестве образца могут использоваться различные специальные символьные последовательности:

\*

Это означает ноль или более символов. Например, если вы зададите A\*B в качестве образца поиска, JOE попытается найти A со следующим далее произвольным количеством любых символов, за которыми следует B.

\?

Ровно один символ. Например, если вы укажете в качестве образца поиска A\?B, JOE найдет AXB, но не AB, и не AXXB.

\^ \$

Это соответствует началу и концу строки. Например, если вы укажете \^test\$, то JOE будет искать строку, в которой содержится только слово test.

\< \>

Это соответствует началу или концу слова. Например, если вы зададите \<\*is\*\>, то joe будет искать слово, содержащее подстроку is.

\[...]

Это соотвествует одному из символов, которые заключены в квадратные скобки. Например, если вы введете в качестве образца поиска \[Tt]his, то JOE найдет и This, и this. В скобках могут указываться и диапазоны символов. Например, \[A-Z] соответствует любой заглавной латинской букве. Если первым символом в скобках является ^, то JOE будет искать символы, не указанные внутри скобок.

\c

Это работает аналогично \*, но соответствует сбалансированным выраженияс языка C. Например, если вы будете искать malloc(\c), то JOE найдет любой вызов функции malloc, даже если в нем находятся вложенные ).

\+

Будет искаться ноль или больше символов, равных следующему сразу за \+. Например, если вы укажете \[ ]\+\[ ], причем в квадратных скобках находятся ПРОБЕЛ и TAB, то JOE будет искать пробельные области.

\\

Соответствует одиночному \.

\n

Будет искаться специальный символ конкца строки.

Следующие специальные символьные последовательности могут использоваться в строке замещения:

\&

Подставляется текст образца поиска. Например, если строкой поиска было \<\*\>, что соответствует словам, и вы укажете "\&", то joe будет заключать слова в кавычки.

\0 - \9

Это будет замещаться текстом, который соответствует N-ному \*, \?, \+, \c, \+, или \[...] в образце поиска.

\\

Используйте это, если вам необходимо поместить \ в строку замещения.

\n

Используйте это, если вам необходимо поместить символ перевода строки в строку замещения.

Несколько примеров:

Предположим, у вас имеется список адресов, по одному в строке, начинающейся со слова "Address:", и элементы разделены запятыми. Вроде следующего:

Address: S. Holmes, 221b Baker St., London, England

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

Нажмите ^K F чтобы начать поиск, и введите:

Address:\*,\*,\*,\*\$

что соответсвует "Address:", четырем элементам, разделенным запятыми, и затем - конец строки. При запросе оции поиска нажмите r для замены строки, и затем введите:

Address:\3,\2,\0,\1

для перетасовки данных нужным вам способом. После нажатия Enter начнется поиск и исходная строка будет преобразована в:

Address: England, London, S. Holmes, 221b Baker St.

### Блоки
Если вы желаете перемещать, копировать, сохранять или удалять отдельные части текста - вы можете использовать для этого отмеченные блоки. Сначала поместите курсор в начало текста, с которым желаете работать, и нажмите ^K B. Затем переместите курсор за последний символ текста и нажмите ^K K. Текст между ^K B и ^K K отметится подсветкой. Теперь вы можете переместить курсор куда-нибуди еще и нажать ^K M для перемещения отмеченного текста туда. Вы можете нажать ^K C, чтобы вставить копию отмеченного текста в точку расположения курсора. ^K Y удалит отмеченный текст. ^K W запишет его в файл.

Очень полезная команда - ^K /, которая фильтрует блок текста через команду unix. Например, если вы отметите список слов, и затем наберете ^K / sort, то этот список отсортируется. Другая полезная команда unix для ^K / - tr. Если вы введете ^K / tr a-z A-Z, то все латинские символы в блоке будут переведены в верхний регистр.

По завершению операций с блоком вы можете просто оставить отметку включенной и не обращать на нее внимания (но, естественно, если вы случайно нажмете ^K Y ...). Если же это вас действительно беспокоит - просто нажмите ^K B ^K K для снятия отметки.

### Сдвиги блоков в программах
Режим автоотступа включается командой ^T I. joerc обычно настроен так, что файлы с именами, зачанчивающимися на .p, .c или .h открываются с включенным автоотступом. Если автоотступ включен и вы нажимаете Enter, курсор переместится в ту же позицию следующей строки, в которой находился первый непробельный символ исходной.

Вы можете использовать команды ^K , и ^K . для сдвига блока текста влево и вправо. to the left or right. Если вы попытаетесь выполнить эти команды, когда блок не отмечен - весь редактируемый текст будет отмечен, и при последующих вызовах ^K , и ^K . будет смещаться. Количество колонок, на которое выполняется сдвиг данными командами, может быть установлено с помощью опции ^T.

### Окна
Вы можете редактировать более одного файла одновременно, или разные части одного и того же файла. Для этого нажмите ^K O, чтобы разрезать экрак на два окна. Используйте ^K P или ^K N для перемещения между окнами. Используйте ^K E для редактирования нового файла в одном из окон. Окно закроется, когда вы сохраните файл по ^K X или отмените редактирование по ^C. Если вы прервете радактирование одного и того же файла, но редактируемого в двух окнах, закроется одно из окон закроется, но не файл.

Вы можете повторно нажать ^K O в окне, чтобы создать больше окон. Если на экране образовалось слишком много окон, но вы не хотите их закрывать - можете нажать ^K I. Это приведет к тому, что на экране будет отображаться только одно текущее окно. Повторное нажатие этой комбинации приведет к обратной попытке - разместить все спрятанные окна на экране. Если вы открыли больше окон, чем может поместиться на экране - вы можете нажать ^K N в самом верхнем или ^K P в самом нижнем окне для доступа к тем окнам, которые не влезли.

Если в командной строке вызова JOE вы указали более одного файла - каждый будет размещен в отдельном окне.

Вы можете изменить высоту окна с помощью команд ^K G и ^K T.

### Клавиатурные макросы
С помощью макросов вы можете записать последовательность нажатий клавиш и затем повторять ее по нажатию двух клавиш. Это полезно для автоматизации повторяющихся задач. Чтобы начать запись макро - нажмите ^K [ и затем число от 0 до 9. В статусной строке появится сообщение (Запись макро n...). Теперь вводите последовательность клавиш, которую желаете повторять. Вводимые команды будут действовать как обычно. Нажмите ^K ] для завершения записи макро. Нажмите ^K с последующей цифрой для повторения записанной ранее последовательности нажатий.

Например, если вы желаете поместить "**" в начало некоторых строк - можете ввести следующее:

^K [ ^A ** <стрелка вниз> ^K ]

В начале записи макро перемещаете курсор в начало строки, вставляете "**", перемещаете курсор на следующую строку и заканчиваете запись. Поскольку мы включили в макро команду перемещения курсора на следующую строку - мы сможем циклически поторять вызов макро, не переводя курсор вручную, что вам следует часто иметь в виду при записи макро.

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

### Повтор
Вы можете использовать команду повтора ^K \, чтобы повторять вызов макро или любой команды редактирования, или даже обычный символ, указанное количество раз. Нажмите ^K \, введите желаемое число повторений команды и нажмите Enter. Следующая введенная команда повторится указанное число раз.

Например, для удаления следующих 20 строк текста нажмите:

^K \ 20<Enter>^Y

### Режим прямоугольных блоков
Нажмите ^T X если хотите, чтобы по ^K B и ^K K отмечались прямоугольные, а не построчные блоки. Этот режим полезен для перемещения, копирования, удаления или сохранения колонок текста. Вы также можете фильтровать колонки текста с помощью команды ^K /, если, к примеру, пожелаете отсортировать колонку. Также можно использовать команду вставки файла ^K R.

Когда включен режим прямоугольных блоков, также может оказаться полезным включить режим замещения (^T T). В этом случае прямоугольники будут замещать существующий текст. Также команда удаления блока (^K Y) будет заполнять отмеченные прямоугольники пробелами и табуляторами вместо того, чтобы удалять их. Режим замещения также может быть полезен при выполнении команды фильтрации блока (^K /), поскольку исходная ширине выбранной колонки останется неизменной.

### Поиск тагов
Если вы редактируете большую программу на языке C со многими исходными файлами - можно использовать программу ctags для генерации файла тагов. Этот файл содержит список имен, используемых в программе и позиций в файлах, где эти имена определены. Команда ^K ; может использоваться для поиска имен (функций, предопределенных констант, и т.п.), загрузки файла, в котором определено данное имя, в текущее окно, и позиционирования курсора в точку определения. ^K ; запрашивает требуемое имя, используя слово, на котором находится курсор, в качестве умолчания. Поскольку ^K ; загружает файл определения в текущее окно - возможно, вам потребуется сначала разрезать окно с помощью команды ^K O, чтобы видеть одновременно и исходный файл, и файл определения.

### Окна шеллов
Нажмите ^K ' для выполнения командного шелла в окне JOE. Когда курсор находится в конце окна шелла (используйте для этого ^K V), все, что вы вводите - будет передаваться в шелл, а не в окно. Любой вывод шелла или вызываемых программ, выполняемых в нем, будет добавляться в окно (курсор будет перемещаться за этот вывод, если находился в конце окна шелла). Эта команда полезна для записи шелл-команд, например, вывода make, результата grep над множеством файлов, или списка файлов из сеанса FTP. Кроме того, печатаемые символы, клавиши ^C, Backspace, DEL, Enter и ^D передаются в шелл. Введите команду шелла exit для прекращения записи вывода шелла. Если в окне шелла вы нажмете ^C, когда курсор находится не в конце окна, шелл будет прерван.

## Переменные Среды
Для корретной работы JOE необходимо правильно установить некоторые переменные среды. Скорость (в бодах) связи между компьютером и вашим терминалом следует правильно указывать для JOE, чтобы экран перерисовывался плавно и можно было вводить вслепую для оптимизации отложенного вывода. Для установки этого используйте команду stty nnn. Значение следует указывать настолько точно, насколько это возможно. Например, если вы подключаетесь через модем со скоростью 1200 бод - вам следует использовать для stty именно это значение. Если вы подключаетесь через модем со скоростью 14.4kбод, но терминальный сервер, к которому вы подключены, связан с компьютером на скорости 9600 бод, вам следует установить скорость 9600. Специальная скорость 38400 или extb используется для указания того, что вы используете высокоскоростное подключение, такое как консоль или эмулятор терминала в X-window. Если вы не можете использовать stty для установки реальной скорости (возможно, потому, что скорость связи модема с компьютером отличается от скорости в линии) - вы можете вместо этого записать числовое значение в переменную среды BAUD (используйте setenv BAUD 9600 для csh или BAUD=9600; export BAUD для sh).

Переменная среды TERM должна указывать на тип используемого вами терминала. Если размер (число строк/колонок) вашего терминала отличается от указанного в его описании TERMCAP или TERMINFO - вы можете установить правильное знение с помощью команды stty rows nn cols nn, или определив переменные среды LINES и COLUMNS.

Обычно JOE ожидает, что для управления потоком данных между компьютером и вашим терминалом используется протокол ^S/^Q (т.е., если компьютер посылает данные слишком быстро для вашего терминала - терминал посылает ^S для приостановки вывода и ^Q для его продолжения). Если для управления потоком используется аппаратный протокол, или если ваш терминал достаточно быстр, чтобы всегда во-время отрабатывать компьютерный вывод и вы желаете использовать ^S/^Q в качестве команд редактирования - вы можете установить переменную среды NOXON, чтобы JOE пытался принимать ^S/^Q. Если связь между компьютером и вашим терминалом не использует никакого протокола управления потоком, а ваш терминал недостаточно быстр, чтобы вовремя отрабатывать вывод компьютера - можете установить переменную среды DOPADDING, чтобы JOE замедлял вывод путем вставки символов заполнения в последовательности изменения экрана.

## Имена файлов
Когда JOE ожидает от вас ввода имени файла - неважно, из командной ли строки, или по запросу редактора, вы также можете вводить:

!command

Читать или писать данные из или в команду шелла. Например, используйте joe '!ls' для редактирования всех файлов из текущей директории, или в редакторе выполните ^K D !mail jhallen@world.std.com для отправки мне редактируемого файла.

>>filename

Используйте это, чтобы JOE добавил редактируемый текст в конец файла "filename."

filename,START,SIZE

Используйте это для доступа к определенной части файла или устройства. START и SIZE могут указываться в десятичном виде (напр.: 123), в восьмеричном (напр.: 0777) или шестнадцатиричном (напр.: 0xFF). Например, используйте joe /dev/fd0,508,2 для редактирования байтов 508 и 509 на первом флоппи-диске в Linux.

-

Используйте это для получения данных со стандартного ввода или для записи на стандартный вывод. Например, вы можете использовать joe в конвейере команд: quota -v | joe - | mail root, если хотите пожаловаться на ваши низкие квоты.

## Файл joerc
Все опции, доступные по ^T, экран подсказки и комбинации клавиш команд редактора определяются в инициализационном файле JOE. Если вы скопируете этот файл (обычно расположенный в /etc/joe/joerc) в $HOME/.joerc, то сможете настраивать все это по своему вкусу. Синтаксис инициализационного файла достаточно понятен, и внутри него содержатся подробные инструкции.

## Благодарности
JOE был написан Joseph H. Allen. Если у вас имеются отчеты об ошибках или вопросы - пишите ему по адресу jhallen@world.std.com. Larry Foard (entropy@world.std.com) и Gary Gray (ggray@world.std.com) также помогли в создании JOE. Перевод на русский язык - Юрий Калиниченко <yuk@iceb.vinnitsa.com>


title: jp2a(1)

text:
# jp2a(1)

## НАЗВАНИЕ
jp2a - утилита для конвертации изображений JPEG и PNG в ASCII art

## СИНТАКСИС
jp2a [ опции ] [ файл(ы) | URL(ы) ]

## ОПИСАНИЕ
jp2a jp2a - небольшая утилита командной строки для конвертирования изображений в форматах JPEG и PNG в текcтовый вид ASCII art.

## ПАРАМЕТРЫ
-

Читать изображения в форматах JPEG или PNG со стандартного ввода

--background=light --background=dark

Вместо постоянного задания --invert, используйте этот параметр. Для терминала с белыми символами на чёрном фоне, используйте --background=dark, и наоборот.

-b --border

Нарисовать рамку вокруг создаваемого изображения

--chars=...

Использовать указанный набор символов для создания выходного изображения ASCII. По умолчанию используется " ...',;:clodxkO0KXNWM". --colors Использовать палитру truecolor (или ANSI, если truecolor не поддерживается) для вывода цветной ASCII-картинки, и задавать цвет через CSS для вывода в HTML.

-d --debug

Выводить отладочную информацию при использовании libcurl для загрузки изображений из сети.

-f --term-fit

Использовать самый большой размер, который позволяет разместить изображение на дисплее терминала.

--term-height

Использовать высоту дисплея терминала и вычислять ширину на основе соотношения сторон изображения.

--term-width

Использовать ширину дисплея терминала и вычислять высоту на основе соотношения сторон изображения.

-z --term-zoom

Использовать ширину и высоту дисплея терминала.

--fill

При использовании с --html и --color, задавать цвет фона каждого выходного символа. Например, для получения HTML-картинки с заливкой светлом фоном, используйте jp2a --color --html --html-fill --background=dark somefile.jpg --output=dark.html

Сделать то же самое на светлом фоне:

jp2a --color --html --html-fill --background=light somefile.jpg --output=light.html

По умолчанию заливка фона не используется.

-x --flipx

Перевернуть выходное изображение по горизонтали

-y --flipy

Перевернуть выходное изображение по вертикали

--height=N

Установить выходную высоту. Если указано только --height, то ширина вывода будет рассчитываться в соответствии с соотношение сторон исходных изображений.

-h --help

Отображение короткого текста справки

--grayscale

Вывод изображения в оттенках серого при использовании --html или --colors.

--html

Вывести ASCII-картинку в формате XHTML 1.0. (Будет выводить в HTML для версий 2.0.0 и выше.)

--htmlls

Вывести ASCII-картинку в формате HTML (Living Standard), подходящем для просмотре в веб-браузерах. Это полезно для больших разрешений картинок и для проверки результата в браузере с установленным малым размером шрифте.

--xhtml

Вывести ASCII-картинку в формате XHTML 1.0.

--html-fill

То же, что и --fill. Лучше использовать --fill вместо этой опции.

--html-no-bold

Не использовать полужирный текст для вывода HTML.

--html-raw

Вывести в HTML-кодах только изображение, без остальных частей веб-страницы, чтобы можно было встроить результат в готовую страницу. (jp2a будет использовать тег
 для версий 2.0.0 и выше вместо
.)

--html-fontsize=N

Задать размер шрифта при использовании --html . Значение по умолчанию 4.

--html-title=...

Задать заголовок страницы HTML.

--output=...

Записать получившуюся ASCII-картинку в указанный файл. Чтобы явно указать стандартный вывод, используйте --output=-.

-i --invert

Инвертировать выходное изображение. При просмотре изображения с белым фоном на дисплее со светлыми символами на тёмном фоне, попробуйте инвертировать изображение.

--red=...

--green=...

--blue=...

При преобразовании RGB в оттенки серого использовать указанные значения для расчёта яркости. Значения по умолчанию - красный=0.2989, зелёный=0.5866 и синий=0.1145.

--size=WIDTHxHEIGHT

Задать выходной размер.

-v --verbose

Вывод расширенной информации в поток ошибок правку при чтении каждого изображения JPEG.

--width=N

Установить ширину вывода. Если указать только ширину, высота будет рассчитана автоматически.

-V --version

Показать версию программы.

--zoom

Устанавливает выходные размеры для всего окна терминала, независимо от соотношения сторон исходного изображения.

## ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
jp2a возвращает 1 при возникновении ошибок, ноль - без ошибок.

## ПРИМЕРЫ
Преобразовать и вывести на экран imagefile.jpg, используя символы ASCII в 40 колонок и 20 строк:

jp2a --size=40x20 imagefile.jpg

Скачать изображение из сети, конвертировать и вывести:

jp2a http://www.google.com/intl/en/logos/easter_logo.jpg

Вывести picture.jpg и picture2.jpg, каждый размером 80x25 символов, используя символы " ...ooxx@@" для вывода:

jp2a --size=80x25 --chars=" ...ooxx@@" picture.jpg picture2.jpg

Вывести image.jpg, шириной 76 колонок, высота автоматически рассчитывается из соотношения сторон image.jpg

cat image.jpg | jp2a --width=76 -

При использовании jp2a вместе с утилитой convert(1) пакета ImageMagick можно объединить команды в конвейер и поручить ImageMagick выполнять все виды преобразований изображений и эффектов на исходном изображении. Например:

convert somefile.png jpg:- | jp2a - --width=80

Для полного набора возможных преобразований посмотрите опции convert(1). Convert может обрабатывать практически любой формат изображения, так что с этой комбинацией можно конвертировать, например, документы PDF или файлы AVI в ASCII.

Хотя стандартная сборка jp2a включает автоматическую загрузку заданных адресами URL файлов, можно загрузить их, используя внешние утилиты curl(1) или wget(1). Например:

curl -s http://foo.bar/image.jpg | convert - jpg:- | jp2a -

## ЗАГРУЗКА ИЗОБРАЖЕНИЙ ИЗ СЕТИ
Если jp2a собран вместе с libcurl(3), можно загрузить изображения, указав URL:

jp2a https://user:pass@foo.com/bar.jpg

Распознаются следующие протоколы: ftp, ftps, file, http, https и tftp.

Для получения большего контроля над загрузкой, можно использовать curl(1) или wget(1) и указать jp2a читать изображение со стандартного ввода.

jp2a использует pipe() и fork() для загрузки изображений с использованием libcurl (т.е. без вызовов exec() или system()) и поэтому не беспокоится о злонамеренно отформатированных URL-адресах.

## ПРЕОБРАЗОВАНИЕ ОТТЕНКОВ СЕРОГО
Для создания изображения на основное только канала красного цвета, можно выполнить команду вида:

jp2a somefile.jpg --red=1.0 --green=0.0 --blue=0.0

При этом яркость выходного изображения будет рассчитана как Y = R*1.0 + G*0.0 + B*0.0. По умолчанию используется Y = R*0.2989 + G*0.5866 + B*0.1145.

## СТРАНИЦА ПРОЕКТА
Последняя версия jp2a и новости всегда доступны на https://github.com/Talinx/jp2a.

## СМОТРИТЕ ТАКЖЕ
cjpeg(1), djpeg(1), jpegtran(1), convert(1)

## БАГИ
jp2a не выполняет интерполяцию при изменении размера. Если желательно улучшить качество картинки, можно попробовать использовать convert(1) и преобразовать исходное изображение в точные выходные размеры перед вызовом jp2a.

Другая проблема заключается в том, что jp2a пропускает несколько X-пикселей вдоль каждой линии сканирования. Это даёт менее точное выходное изображение, и, вероятно, будет исправлено в следующих версиях

## АВТОРЫ
Christian Stigen Larsen and Christoph Raitzig

jp2a использует jpeglib для чтения файлов JPEG. jpeglib разрабатывается независимой JPEG группой (IJG), домашняя страница проекта http://www.ijg.org

jp2a использует libpng для чтения файлов PNG. Домашняя страница libpng - http://libpng.org/pub/png/libpng.html

## ЛИЦЕНЗИЯ
jp2a распространяется под лицензией GNU General Public License v2.

branch: sisyphus


make-release

package: maintenance-utils

title: make-release(1)

text:
# make-release(1)

## НАЗВАНИЕ
make-release - автоматическое создание нового выпуска пакета на основе текущей ветки gear-репозитария, включая установку следующей сборочной версии в spec-файле, комментирование операции в журнале изменений, установку тега, загрузку изменений в удалённый репозитарий и отправления задания для удалённой сборки на сборочном сервере.

## АННОТАЦИЯ
make-release [опции] [<имя ветки>]

## ОПИСАНИЕ
С помощью программы make-release можно легко выполнить все формальные операции, необходимые для выпуска новой версии пакета для определённой ветки после того, как все изменения в пакете уже подготовлены. Программа сама определит правильную сборочную версию исходя из анализа журнала изменений. Все изменения репозитария, производимые программой, ограничиваются spec-файлом и тегами, и снабжаются простыми комментариями.

Однако поскольку изменения всё же являются достаточно ответственными, все они по умолчанию производятся лишь локально. С помошью соответствующих опций можно вызвать загрузку изменений в удалённый репозиторий, создание задания на удалённую его сборку и запуск задания.

## АРГУМЕНТЫ
make-release поддерживает следующие аргументы коммандной строки:

-R ПСЕВДОНИМ, --remote=ПСЕВДОНИМ

псевдоним сборочного сервера, по умолчанию `git.alt';

-o ИМЯ, --origin=ИМЯ

имя удалённого репозитария, по умолчанию `origin';

-M[ВЕТКА] ИМЯ, --merge[=ВЕТКА]

обновить целевую ветку из ветки `master' или указанной ветки;

-b, --build

собрать новый выпуск пакета на сборочном сервере;

-t [НОМЕР[:SUBNUM]], --task=[НОМЕР[:SUBNUM]]

создать новое задание или добавить операцию сборки пакета в задание с указанным номером, но не запускать его; опционально может быть указан номер подзадания;

-C ДАННЫЕ, --committer=ДАННЫЕ

информация о лице производящем изменения в формате `Имя Фамилия <адрес электронной почты>';

-m ТЕКСТ, --message=ТЕКСТ

сообщение, помещаемое в качестве коментария вместо автоматического комментария по умолчанию;

-d, --dry-run

не производить, но сообщать о предполагаемых изменениях (режим предварительного просмотра);

-p, --push

загрузить изменения в удалённый репозитарий;

-f, --force

действовать упорно, игнорируя возникающие ошибки и предупреждения (используйте ОСТОРОЖНО);

-T, --test

собрать новый выпуск пакета на сборочном сервере в ТЕСТОВОМ режиме;

-c БАГИ, --closes=БАГИ

добавляет в сообщение об изменениях команду вида (closes: БАГИ);

-q, --quiet

подавляет вывод информационных сообщений;

-v, --verbose

вывод информационных сообщений о производимых операциях;

-V, --version

вывести информацию о версии программы и больше ничего не делать;

-h, --help

вывести информацию об способе использования программы.

## АВТОР
Paul Wolneykien <manowar@altlinux.org>.

## ЛИЦЕНЗИЯ
Copyright (C) 2009 Paul Wolneykien.

Данная программа свободна: вы можете свободно распростанять и/или изменять её по собственному желанию в соответствие с требованиями Общественного Соглашения GNU (GNU General Public License) Фонда Свободного программного обеспечения (Free Software Foundation), версии 3 или (по вашему желанию) любой, более новой версии Общественного лицензионного Соглашения.

Программа распространяется в надежде, что она будет полезна но БЕЗ ВСЯЧЕСКИХ ГАРАНТИЙ, включая подразумеваемую гарантию КАЧЕСТВА либо ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Для дополнительных сведений, обращайтесь к полной версии GNU GPL, копию которой вы должны были получить вместе с программой, или по адресу <http://www.gnu.org/licenses/>.

## КОНТАКТНАЯ ИНФОРМАЦИЯ
Волнейкин Павел Анатольевич (manowar@altlinux.org).

119334, г. Москва, 5-й Донской проезд, д. 15, стр. 6, ООО "Альт Линукс"


make-figure

package: make-figure

title: make-figure(1)

summary: ���������� ����������� ��� ף�����

text:
# make-figure(1)

## НАЗВАНИЕ
make-figure - Подготовка иллюстраций для вёрстки

## АННОТАЦИЯ
make-figure файл-шаблон [файл-шабон...] [масштаб]

## НАЗНАЧЕНИЕ ПРОГРАММЫ
Программа make-figure помогает в подготовке рисунков для документов, верстаемых с помощью TeX. Основное назначение программы состоит в том, чтобы адаптировать рисунки из одного источника для документов различного назначения, таких как статья и презентация. Указанные типы документов обычно различаются масштабом изображений и набором используемых шрифтов. Простое масштабирование рисунков, содержаших текст нежелательно, поскольку надписи в этом случае масштабируются вместе с рисунком. К тому же, рисунок выглядит более опрятно в том случае, если все надписи на нём врестаются с помощью TeX, так же как и основоной текст. По этой причине, часто приходится вручную адаптировать один и тот же рисунок для включения его в целевой документ. Вторая причина состоит в том, что рисунок в документе может состоять из нескольких отдельных рисунков, скомпонованных вместе. Причём компоновка зачастую определяется соотношением сторон целевой страницы. По этой причине не стоит жёстко объединять несколько самостоятельных фрагметов в одино изображение, а использовать для компоновки возможности TeX.

Настоящая программа призвана автоматизировать данный процесс.

## МЕТОД РАБОТЫ
Основным объектом программы является не отдельное изображение, а шаблон компоновки рисунка, содержащий рецепты по его "приготовлению" из отдельных рисунков меньшего размера и подписи. Шаблон представляет собой фрагмент, предназначенный для включения в документ LaTeX. Имя файла должно оканчиваться на .tex.in . Последним, необязательным аргументом является целевой масштаб рисунка, который по умолчанию принимается равным 1.0.

При использовании пакета psfrags шаблон так же может переопределять надписи на самом рисунке, что позволит получить их напечатанными тем же шрифтом, что и основной документ. Возможность переопределять надписи в шаблоне может быть использована для получения из одного источника нескольких рисунков, содержащих надписи на различных языках. Поэтому использование psfrags настоятельно рекомендуется автором. Для облегчения использования этого пакета с рисунками, не предназначенными для этого специально, в пакет с программой make-figure включена утилита extract-psfrags для атоматического извлечения текстовых строк из EPS-рисунков.

## ШАБЛОНЫ
Отличием шаблона рисунка от обыкновенного фрагмента кода LaTeX является наличие в нём специальных рецептов -- команд, предназначенных для обработки программой make-figure.

Каждый рецепт имеет следующий вид:

@graphic <тип рисунка> <имя файла> <масштаб>

где <тип рисунка> может принимать значения: raster, vector и plot, предназначенные для адаптации растрового, векторного изображений и графика соответственно; <имя файла> определяет файл с рисунком, подлежащий прелбразованию в формат EPS; <масштаб> определяет относительный размер рисунка в составе композиции. Растровое изображение может быть представлено в любом формате, поддерживаемым программой ImageMagick (т.е. практически в любом открытом формате), векторное изображение должно быть в формате SVG. Источником для построения графика является программа для GNU Octave. В виду этой зависимости, источник plot доступен только при наличии в системе дополнительного пакета make-figure-plot.

Относительный масштаб рисунка в составе композиции умножается на целевой масштаб всего рисунка.

## АВТОР
Paul Wolneykien <manowar@altlinux.org>.

## ЛИЦЕНЗИЯ
Copyright (C) 2009 Paul Wolneykien.

Данная программа свободна: вы можете свободно распростанять и/или изменять её по собственному желанию в соответствие с требованиями Общественного Соглашения GNU (GNU General Public License) Фонда Свободного программного обеспечения (Free Software Foundation), версии 3 или (по вашему желанию) любой, более новой версии Общественного лицензионного Соглашения.

Программа распространяется в надежде, что она будет полезна но БЕЗ ВСЯЧЕСКИХ ГАРАНТИЙ, включая подразумеваемую гарантию КАЧЕСТВА либо ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Для дополнительных сведений, обращайтесь к полной версии GNU GPL, копию которой вы должны были получить вместе с программой, или по адресу <http://www.gnu.org/licenses/>.

## КОНТАКТНАЯ ИНФОРМАЦИЯ
ALT Linux, Ltd <http://www.altlinux.ru/>.


apropos

package: man-db

title: apropos(1)

text:
# apropos(1)

## НАЗВАНИЕ
apropos - поиск в именах справочных страниц и кратких описаниях

## СИНТАКСИС
apropos [-dalv?V] [-e|-w|-r] [-s список] [-m система[,...]] [-M путь] [-L локаль] [-C файл] ключевое слово ...

## ОПИСАНИЕ
Внутри каждой справочной страницы есть краткое описание о чём эта страница. apropos выполняет поиск ключевого слова в этом описании.

Ключевое слово может представлять собой регулярное выражение (-r), шаблон (-w) или точное искомое ключевое слово (-e). При использовании этих параметров может потребоваться указывать ключевое слово в кавычках или экранировать (\) специальные символы для того, чтобы избежать их интерпретации оболочкой командной строки.

Стандартные правила поиска позволяют искать по названию страницы и границам слова в описании.

Используемая apropos поисковая база данных обновляется программой mandb. В зависимости от установки, она может запускаться как периодически выполняемое задание cron или вручную, после установки новых справочных страниц.

## ПАРАМЕТРЫ
-d, --debug

Показывать отладочную информацию.

-v, --verbose

Показывать подробные предупреждающие сообщения.

-r, --regex

Рассматривать каждое ключевое слово как регулярное выражение. Является поведением по умолчанию. Для каждого ключевого слова будет выполнен независимый поиск в названиях страниц и описаниях. Для совпадения достаточно нахождения в одном из этих мест. Сравнение не ограничивается границами слова.

-w, --wildcard

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

-e, --exact

Искать точное совпадение с названиями страниц и описаниями каждого ключевого слова.

-a, --and

Показывать страницы, в которых найдены все указанные ключевые слова. По умолчанию отображаются страницы, в которых есть хотя бы одно ключевое слово.

-l, --long

Не обрезать вывод по ширине терминала. Обычно, вывод обрезается по ширине терминала во избежание проблем с плохо оформленными разделами НАЗВАНИЕ.

-s список, --sections=список, --section=список

Искать только в заданном разделе справочных страниц. В списке перечисляются разделы через двоеточие или запятую. Если в списке указан только номер, например "3", то в выводимый список описаний войдут страницы из разделов "3", "3perl", "3x" и так далее; но если в списке указано расширение, например "3perl", то будут показаны страницы только из раздела справочных страниц с этим расширением.

-m система[,...], --systems=система[,...]

Если эта система имеет доступ к описаниям справочных страниц других операционных систем, то с помощью этого параметра среди них тоже может быть осуществлён поиск. Чтобы искать в описаниях справочных страниц по NewOS, укажите параметр -m NewOS. В значении системы можно указать несколько названий систем, перечислив их через запятую. Чтобы включить поиск в whatis-описаниях по родной операционной системе, добавьте в значение системное название man. Этот параметр подменяет значение переменной окружения $SYSTEM.

-M путь, --manpath=путь

Задать альтернативный набор каталогов (через двоеточие) иерархии справочных страниц для поиска. По умолчанию, apropos использует переменную окружения $MANPATH, если она существует и не пуста, иначе соответствующий manpath определяется на основе переменной окружения $PATH. Этот параметр подменяет значение переменной окружения $MANPATH.

-L локаль, --locale=локаль

apropos, обычно, определяет текущую локаль с помощью вызова C-функции setlocale(3), которая исследует различные переменные окружения, возможно $LC_MESSAGES и $LANG. Для временной подмены полученного значения, используйте этот параметр, задающий локаль только в apropos. Заметим, что это влияет только непосредственно на поиск страниц. Вывод сообщений программы, например справки, всегда будет выполняться для изначально определённой локали.

-C файл, --config-file=файл

Использовать указанный пользовательский файл настройки вместо значения по умолчанию ~/.manpath.

-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## КОД ВЫХОДА
0

Успешное выполнение программы.

1

Была показана справка об использовании, произошла синтаксическая ошибка или проблемы в файле настройки.

2

Ошибка при работе.

16

По запросу ничего не найдено.

## ОКРУЖЕНИЕ
SYSTEM

Установка значения переменной окружения $SYSTEM равносильна указанию параметра -m.

MANPATH

Если установлена переменная окружения $MANPATH, то она рассматривается как набор каталогов (через двоеточие) иерархии справочных страниц для использования при поиске. О том, как используется эта переменная окружения и поведение по умолчанию, смотрите раздел ПУТЬ ПОИСКА в manpath(5).

MANWIDTH

Если установлена переменная окружения $MANWIDTH, то её значение используется для определения ширины терминала (смотрите описание параметра --long). Если она не установлена, то ширина терминала вычисляется из значения переменной окружения $COLUMNS и, если доступен, вызова ioctl(2) или устанавливается равной 80 символам, если определить значение не удалось.

POSIXLY_CORRECT

Если установлена переменная окружения $POSIXLY_CORRECT, даже имеющая пустое значение, то по умолчанию apropos включает поиск по расширенным регулярным выражениям (-r). В настоящее время, это всё равно является поведением по умолчанию.

## ФАЙЛЫ
/usr/share/man/index.(bt|db|dir|pag)

Традиционный кэш глобальной базы данных index.

/var/cache/man/index.(bt|db|dir|pag)

Соответствующий FHS глобальный кэш базы данных index.

/usr/share/man/.../whatis

Традиционная текстовая база данных whatis.

## СМОТРИТЕ ТАКЖЕ
man(1), whatis(1), mandb(8)

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


lexgrog

title: lexgrog(1)

text:
# lexgrog(1)

## НАЗВАНИЕ
lexgrog - анализирует заголовочную информацию справочных страниц

## СИНТАКСИС
lexgrog [-m|-c] [-dfw?V] [-E кодировка] файл ...

## ОПИСАНИЕ
lexgrog — это реализация традиционной “groff guess” утилиты с помощью lex. Она читает список файлов из командной строки, которые являются файлами исходников справочных страниц или уже отформированными (“cat”) страницами, и показывает их названия и описания, используемые apropos и whatis, список предварительных фильтров обработки, требуемый man страницей перед тем как она будет передана nroff или troff, или обеим программам.

Если входные данные неправильно отформатированы, lexgrog выведет “parse failed”; это может оказаться полезным для внешних программ, которым нужно проверять правильность написания man страниц. Если в качестве одного из имён файлов lexgrog передан символ “-”, то данные будут читаться из стандартного входного потока; если любой входной файл сжат, то будет автоматически читаться его расжатая версия.

## ПАРАМЕТРЫ
-d, --debug

Показывать отладочную информацию.

-m, --man

Анализировать входные данные как файлы исходников справочных страниц. Является действием по умолчанию, если не указан параметр --man или --cat.

-c, --cat

Анализировать входные данные как уже отформатированные справочные страницы (“cat страницы”). --man и --cat не могут указываться одновременно.

-w, --whatis

Показать название и описание из заголовка справочной страницы, используемого apropos и whatis. Является действием по умолчанию, если не указан параметр --whatis или --filters.

-f, --filters

Показать список фильтров, необходимых для предварительной обработки справочной страницы перед форматированием с помощью nroff или troff.

-E кодировка, --encoding кодировка

Использовать кодировку вместо предполагаемой кодировки символов страницы.

-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## КОД ВЫХОДА
0

Успешное выполнение программы.

1

Ошибка использования.

2

lexgrog не удалось разобрать один или более входных файлов.

## ПРИМЕРЫ

```
  $ lexgrog man.1

  man.1: "man - an interface to the system reference manuals"

  $ lexgrog -fw man.1

  man.1 (t): "man - an interface to the system reference manuals"

  $ lexgrog -c whatis.cat1

  whatis.cat1: "whatis - display manual page descriptions"

  $ lexgrog broken.1

  broken.1: parse failed
```

## ЧТО АНАЛИЗИРУЕТСЯ
mandb (использует тот же код, что и lexgrog) анализирует раздел NAME (НАЗВАНИЕ), расположенный в самом начале каждой справочной страницы, в поиске названий и описаний возможностей. Хотя анализатор допускает различные вариации и понимает много различных форматов, которые сложились за время использования, иногда он не может извлечь требуемую информацию.

При использовании традиционных наборов макросов man, правильно оформленный раздел NAME выглядит так:

```
.SH NAME
foo \- программа, выполняющая что-то
```

Некоторые справочные пейджеры требуют ‘\-’ точно как показано; mandb более терпим, но для совместимости с другими системами всё же лучше оставлять символ обратной косой черты.

Слева от черты могут быть несколько названий, разделённых через запятую. Названия с пробелами будут игнорироваться во избежании необычного поведения для определённо плохо оформленных разделов NAME. У текста справа нет специального формата, и он может располагаться на нескольких строках. Если в одной справочной странице содержатся несколько свойств с различными описаниями, то используется следующая форма:

```
.SH NAME
foo, bar \- программы, выполняющие что-то
.br
baz \- программа ничего не делающая
```

(Вместо макроса разрыва .br может использоваться макрос, начинающий новый параграф, типа .PP.)

Если используется BSD-производный набор макросов mdoc, то правильно оформленный раздел NAME выглядит так:

```
&.Sh NAME
.Nm foo
.Nd программа, выполняющая что-то
```

Есть несколько распространённых причин, по которым анализ может завершаться неудачно. Иногда авторы справочных страниц заменяют ‘.SH NAME’ на ‘.SH MYPROGRAM’, и поэтому mandb не может найти раздел, из которого нужно извлекать информацию. Иногда авторы включают раздел NAME, но размещают его в свободной форме, а не как положено ‘название \- описание’. Однако любой синтаксис, приведённый выше, будет понят.

## СМОТРИТЕ ТАКЖЕ
apropos(1), man(1), whatis(1), mandb(8)

## ЗАМЕЧАНИЯ
lexgrog пытается проанализировать файлы, содержащие запросы .so, но сможет это сделать, если только файлы правильно установлены в иерархии справочных страниц.

## АВТОР
Авторы кода, используемого lexgrog для сканирования справочных страниц:

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

Колин Ватсон (Colin Watson) написал текущий вариант для интерфейса командной строки, а также данную справочную страницу.

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


man

title: man(1)

summary: доступ к системным справочным страницам

text:
# man(1)

## НАЗВАНИЕ
man - доступ к системным справочным страницам

## СИНТАКСИС
man [параметры man] [[раздел] страница ...] ...

man -k [параметры apropos] регвыр ...

man -K [параметры man] [раздел] термин ...

man -f [whatis параметры] страница ...

man -l [параметры man] файл ...

man -w|-W [параметры man] страница ...

## ОПИСАНИЕ
man — это пейджер справочных страниц системы. Каждый параметр страница, переданный man, обычно является названием программы, утилиты или функции. По каждому из этих параметров выполняется поиск и вывод связанной с ним справочной страницы. Если указан параметр раздел, то это заставляет man выполнять поиск только в этом справочном разделе. Действием по умолчанию является поиск во всех доступных разделах в заранее определённом порядке (смотрите DEFAULTS) и показ только первой найденной страницы, даже если существуют страницы в нескольких разделах.

В таблице ниже показаны номера справочных разделов и описание их содержимого.

1

Исполняемые программы или команды оболочки (shell)

2

Системные вызовы (функции, предоставляемые ядром)

3

Библиотечные вызовы (функции, предоставляемые программными библиотеками)

4

Специальные файлы (обычно находящиеся в каталоге /dev)

5

Форматы файлов и соглашения, например о /etc/passwd

6

Игры

7

Разное (включает пакеты макросов и соглашения), например man(7), groff(7), man-pages(7)

8

Команды администрирования системы (обычно, запускаемые только суперпользователем)

9

Процедуры ядра [нестандартный раздел]

Справочная страница состоит из нескольких разделов.

Стандартные имена разделов: НАЗВАНИЕ (NAME), СИНТАКСИС (SYNOPSIS), НАСТРОЙКИ (CONFIGURATION), ОПИСАНИЕ (DESCRIPTION), ПАРАМЕТРЫ (OPTIONS), КОД ВЫХОДА (EXIT STATUS), ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ (RETURN VALUE), ОШИБКИ (ERRORS), ОКРУЖЕНИЕ (ENVIRONMENT), ФАЙЛЫ (FILES), ВЕРСИИ (VERSIONS), СТАНДАРТЫ (STANDARDS), ЗАМЕЧАНИЯ (NOTES), ОШИБКИ (BUGS), ПРИМЕР (EXAMPLE), АВТОРЫ (AUTHORS) и СМОТРИТЕ ТАКЖЕ (SEE ALSO).

В разделе СИНТАКСИС используются следующие соглашения (которые также могут быть использованы в качестве основы для других разделов).

текст жирным шрифтом

набирать точно как показано.

текст курсивным шрифтом

заменить соответствующим значением.

[-abc]

любой или все параметры внутри [ ] необязательны.

-a|-b

параметры, разделённые |, не могут указываться одновременно.

параметр ...

повторяющийся параметр.

[выражение] ...

всё выражение внутри [ ] может вводиться несколько раз.

Точная отрисовка может отличаться на разных устройствах вывода. Например, man, обычно, не способна вывести курсив в терминале, и вместо него выведет текст подчёркнутым или цветным.

При объяснении команды или функции должен применяться шаблон, который точно описывает все возможные варианты вызова. В некоторых случаях рекомендуется показать несколько уникальных вызовов, как показано в разделе СИНТАКСИС этой справочной страницы.

## ПРИМЕРЫ
man ls

Показать справочную страницу для параметра (программы) ls.

man man.7

Показать справочную страницу пакета макросов man из раздела 7 (аналог команды "man 7 man").

man 'man(7)'

Показать справочную страницу пакета макросов man из раздела 7 (аналог команды "man 7 man"; она удобнее для копирования и вставки перекрёстных ссылок в справочные страницы; заметим, что скобки нужно защищать кавычками из-за оболочки).

man -a intro

Показать подряд все доступные справочные страницы по intro. В перерыве между показами можно пропустить следующую справочную страницу или закончить просмотр.

man -t bash | lpr -Pps

Отформатировать справочную страницу для bash в формат по умолчанию troff или groff и передать её по каналу в принтер с именем ps. Обычно, форматом вывода groff по умолчанию является PostScript. По команде man --help можно посмотреть какой процессор привязан к параметру -t.

man -l -Tdvi ./foo.1x.gz > ./foo.1x.dvi

Эта команда расжимает и форматирует справочную страницу в формате nroff ./foo.1x.gz в файл в формате независимом от устройства (dvi). Перенаправление вывода необходимо, так как при параметре -T вывод направляется напрямую на стандартный вывод без пейджера. Результат может быть просмотрен с помощью, например, xdvi или преобразован в PostScript с помощью, например, dvips.

man -k printf

Искать в кратких описаниях и именах справочных страниц ключевое слово printf, рассматриваемое как регулярное выражение. Показать любые найденные совпадения. Эквивалентно вызову apropos printf.

man -f smail

Искать справочные страницы, ссылающиеся на smail и показать краткое описание любой найденной. Эквивалентно вызову whatis smail.

## ОБЗОР
Многие параметры man предназначены для предоставления как можно большей гибкости пользователю. Можно изменять путь поиска, порядок разделов, выходной обработчик и другие характеристики и операции — всё это подробно описано ниже.

В работе man могут использоваться различные переменные окружения. Возможно задать любые параметры во «всеобъемлющей» переменной $MANOPT, экранируя пробельные символы в значениях (с помощью обратной косой черты). man разбирает $MANOPT перед началом анализа параметров, переданных при вызове в командной строке. Все значения параметров, указанные в командной строке, заменят значения своих аналогов из переменной окружения. Для сброса всех параметров, установленных с помощью $MANOPT, можно указать параметр -D в начале командной строки. Это позволит man «забыть» о значениях, указанных в $MANOPT, хотя они всё равно должны быть заданы правильно.

Обычно, справочные страницы хранятся в формате nroff(1) в каталоге /usr/share/man. В некоторых установках для повышения производительности также могут существовать заранее отформатированные страницы cat. Место хранения этих файлов описано в manpath(5).

Данный пакет обеспечивает поддержку справочных страниц на нескольких языках (через локаль). Если система не настраивает её автоматически, то вам необходимо присвоить переменной $LC_MESSAGES, $LANG или другой переменной окружения (зависит от системы) значение локали предпочитаемого языка, обычно задаваемое в формате POSIX:

<язык>[_<территория>[.<кодировка>[,<версия>]]]

Если запрашиваемая страница доступна для вашей локали, то она будет показана вместо стандартной (обычно, на американском английском) страницы.

Если вы обнаружили, что этот пакет не переведён ваш язык и вы хотите сделать это, то свяжитесь с сопровождающим, который скоординирует данную работу.

Отдельные справочные страницы пишутся и поддерживаются сопровождающими программы, функции или другой части, которую они описывают, и не включены в этот пакет. Если вы обнаружите отсутствие или некорректность справочной страницы, сообщите сопровождающим конкретного пакета.

О других возможностях и расширениях, доступных в этом пейджере справочных страниц, читайте в описаниях из этого пакета.

## ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ
Порядок поиска по разделам можно изменить через переменную окружения $MANSECT или директиву SECTION в /etc/man_db.conf. Значение по умолчанию следующее:

1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x

Отформатированная справочная страница отображается пейджером. Его можно задать несколькими способами, в противном случае будет использовано значение по умолчанию (смотрите описание параметра -P).

Фильтры можно указывать разными способами. Во-первых, обрабатывается значение параметра -p или переменная окружения $MANROFFSEQ. Если -p не указывалась и переменная окружения не установлена, то в поисках строки препроцессора анализируется первая строка nroff файла. Чтобы указывать строку препроцессора правильно, первая строка должна быть в формате

'\" <строка>

где строка может содержать комбинацию букв, описанных в параметре -p ниже.

Если информация о фильтре нигде не указана, то используется набор по умолчанию.

Конвейер форматирования создаётся из фильтров и основной программы форматирования (nroff или [tg]roff с параметром -t) и выполняется. Или же, если существует исполняемая программа mandb_nfmt (или mandb_tfmt с параметром -t) в корне дерева справочных страниц, то выполняется именно она. Она получает файл с исходным текстом справочной страницы, строку препроцессора, и, необязательно, устройство, указанное в параметре -T или -E.

## ПАРАМЕТРЫ
Параметры без значений, повторяющиеся в командной строки, $MANOPT или обоих, не опасны. В случае с параметрами со значением, при каждом повторении новое значение заменяет имеющееся.

### Общие параметры
-C файл, --config-file=файл

Использовать указанный пользовательский файл настройки вместо значения по умолчанию ~/.manpath.

-d, --debug

Показывать отладочную информацию.

-D, --default

Этот параметр обычно вводится самым первым, и указывает man активировать поведение по умолчанию. Он используется для сброса параметров, которые могли быть установлены через переменную окружения $MANOPT. Любые параметры, указанные после -D, будут действовать как обычно.

--warnings[=предупреждения]

Включить предупреждения от groff. Это может быть использовано для проверки тривиальных ошибок в исходном тексте справочных страниц. Предупреждения представляют собой список названий предупреждений через запятую; если он не указан, то по умолчанию используется значение «mac». ЧТобы отключить предупреждение groff, поставьте перед ним «!»: например, --warnings=mac,!break включает предупреждения в категории «mac» и отключает предупреждения в категории «break». Список доступных предупреждений можно найти в info groff, раздел “Предупреждения”.

### Основные режимы работы
-f, --whatis

Примерно эквивалентно работе whatis. Отображает краткое описание из справочной страницы, если оно есть. Подробней смотрите whatis(1).

-k, --apropos

Примерно эквивалентно работе apropos. Ищет в кратких описаниях справочных страниц ключевые слова и показывает любые совпадения. Подробней смотрите apropos(1).

-K, --global-apropos

Поиск текста во всех справочных страницах. Используется простой поиск перебором, что занимает определённое время; если можно, указывайте раздел для сокращения числа страниц, в которых нужно искать. Термины поиска могут быть простыми строками (по умолчанию), или регулярными выражениями, если указан параметр --regex.

Заметим, что данный поиск выполняется по исходному тексту справочных страниц, а не по отображаемому тексту, и поэтому может включать ложноположительные результаты, например, из-за комментариев в исходных файлах или ложноотрицательные результаты из-за дефисов, записанных в виде "\-" в исходных файлах. Поиск по отображаемому тексту выполнялся бы намного медленнее.

-l, --local-file

Включить «локальный» режим. Форматирует и показывает локальные справочные файлы, а не ищет их в справочной коллекции системы. Каждый параметр справочной страницы считается именем правильно отформатированного исходного файла nroff. Cat файлы не создаются. Если в качестве одного из параметров указан «-», то данные будут взяты из стандартного входного потока.

Если этот параметр не используется, то man также попытается проверить не являются ли аргументы справочных страниц именами локальных файлов, если аргумент содержит символ «/», так как это хороший признак того, что аргумент указывает на путь в файловой системе.

-w, --where, --path, --location

Не выводить содержимое справочной страницы, а показать место нахождения исходного файла nroff, который был бы отформатирован. Если также указан параметр -a, то вывести расположения всех исходных файлов, которые подпадают под критерии поиска.

-W, --where-cat, --location-cat

Не выводить содержимое справочной страницы, а показать место нахождения отформатированного файла cat, который был бы показан. Если также указан параметр -a, то вывести расположения всех отформатированных файлов, которые подпадают под критерии поиска.

Если указаны параметры -w и -W, и вывести исходный файл и файл cat, разделив их пробелом. Если указаны сразу -w, -W и -a, то сделать это для каждого возможного совпадения.

-c, --catman

Этот параметр не для обычного использования, и должен использоваться только программой catman.

-R кодировка, --recode=кодировка

Вместо обычного форматирования справочной страницы можно преобразовать исходный текст в заданную кодировку. Если вам уже известна кодировка исходного файла, то вы можете также использовать непосредственно manconv(1). Однако, этот параметр позволяет преобразовывать несколько справочных страниц в одну кодировку без явного указания кодировки каждой страницы, предполагая, что они уже установлены в структуру, подобную иерархии справочных страниц.

Попробуйте использовать man-recode(1) вместо преобразования множества справочных страниц, так как его интерфейс разработан для группового преобразования и может выполнить эту задачу намного быстрее.

### Поиск справочных страниц
-L локаль, --locale=локаль

man, обычно, определяет текущую локаль с помощью вызова C-функции setlocale(3), которая исследует различные переменные окружения, возможно $LC_MESSAGES и $LANG. Для временной подмены полученного значения, используйте этот параметр, задающий локаль только в man. Заметим, что это влияет только непосредственно на поиск страниц. Вывод сообщений программы, например справки, всегда будет выполняться для изначально определённой локали.

-m система[,...], --systems=система[,...]

Если система имеет доступ к справочным страницам других операционных систем, то к ним можно обратиться с помощью этого параметра. Чтобы найти справочную страницу из коллекции страниц для операционной системы NewOS, укажите -m NewOS. В значении система может указать несколько имён операционных систем через запятую. Чтобы включить поиск по справочным страницам родной операционной системы, добавьте системное имя man в это значение. Этот параметр заменяет значение переменной окружения $SYSTEM.

-M путь, --manpath=путь

Задать альтернативный manpath для работы. По умолчанию, для определения пути поиска man использует manpath, указанный в исходном коде программы. Этот параметр заменяет значение переменной окружения $MANPATH и выключает действие параметра -m. Задаваемый в качестве manpath путь должен быть корнем иерархии справочных страниц, разделённой на разделы, описанных в справочной странице по man-db (в разделе "Система справочных страниц"). Для просмотра справочных страниц вне этих иерархий, используйте параметр -l.

-S список, -s список, --sections=список

Задаваемый список разделов, перечисляемых через запятую, используется для определения разделов руководства поиска и их порядка. Этот параметр заменяет значение переменной окружения $MANSECT (параметр -s введён для совместимости с System V).

-e доп.расширение, --extension=доп.расширение

Некоторые системы включают большое число пакетов справочных страниц, например таких, которые поставляются с пакетом Tcl, в главную иерархию справочных страниц. Для решения проблемы появления двух справочных страниц с одинаковым именем, например, exit(3), все страницы Tcl, обычно, помещаются в раздел l. Но для страниц такого типа уже определён правильный раздел (3). Теперь возможно помещать страницы в правильный раздел, и назначать им специальное «расширение», в данном случае, exit(3tcl). Обычно, man показывает exit(3), а не exit(3tcl). Чтобы преодолеть это и не запоминать в каком разделе лежит определённая страница, теперь возможно передать man строку доп.расширения, указывающую какому пакету должна принадлежать страница. Возвращаясь к примеру выше, укажите параметр -e tcl для man, чтобы ограничить поиск только страницами с расширением *tcl.

-i, --ignore-case

Игнорировать регистр при поиске справочных страниц. Включено по умолчанию.

-I, --match-case

Искать справочные страницы с учётом регистра символов.

--regex

Показывает все страницы, у которых какая-то часть в имени или в описании совпадает с параметром страница, заданным в виде регулярного выражения, также как apropos(1). Так как, обычно, нет разумного способа определить "лучшую" страницу при поиске по регулярному выражению, то этот параметр подразумевает -a.

--wildcard

Показывает все страницы, у которых какая-то часть в имени или в описании совпадает с параметром страница, заданным в виде групповых символов, также как в apropos(1) --wildcard. Значение страница должно полностью совпадать с именем или описанием, или совпадать по границе слов в описании. Так как, обычно, нет разумного способа определить "лучшую" страницу при поиске по регулярному выражению, то этот параметр подразумевает -a.

--names-only

Если указан параметр --regex или --wildcard, то совпадения ищутся только в именах страниц, а не в описании страницы, как в whatis(1). Иначе, этого не происходит.

-a, --all

По умолчанию, man завершает работу после показа наиболее подходящей найденной справочной страницы. Этот параметр заставляет man показать все справочные страницы с именами, которые удовлетворяют критериям поиска.

-u, --update

Данный параметр заставляет man обновить свои кэши базы данные установленных справочных страниц. Это требуется очень редко и для этого, обычно, лучше запускать mandb(8).

--no-subpages

По умолчанию, man пытается интерпретировать пары имён справочных страниц, указанных в командной строке, как единое имя справочной страницы, содержащее символ переноса или подчёркивания. Это поддерживает общую систему программ, которые имеют несколько подкоманд, позволяя для каждой из них предоставлять справочные страницы используя синтаксис, похожий на вызов самих подкоманд. Например:

```
  $ man -aw git diff
  /usr/share/man/man1/git-diff.1.gz
```

Чтобы выключить такое поведение, укажите параметр --no-subpages.

```
  $ man -aw --no-subpages git diff
  /usr/share/man/man1/git.1.gz
  /usr/share/man/man3/Git.3pm.gz
  /usr/share/man/man1/diff.1.gz
```

### Контролирование форматированного вывода
-P пейджер, --pager=пейджер

Указывает, какой пейджер использовать для вывода. По умолчанию, man использует less и применяет cat, если less не найден или не является исполняемым файлом. Этот параметр заменяет значение переменной окружения $MANPAGER которая, в свою очередь, заменяет значение переменной окружения $PAGER. Не используется вместе с -f или -k. Значением может быть просто имя команды или команды с параметрами, можно использовать экранирование интерпретатора команд (обратные слэши, одиночные кавычки или двойные кавычки). Нельзя объединять несколько команд каналами; если эту нужно, создайте сценарий-обёртку, который получает файл для показа в виде параметра или со стандартного ввода.

-r приглашение, --prompt=приглашение

Если в качестве пейджера используется новая версия less, то man будет пытаться установить ей формат приглашения и некоторые значимые параметры. По умолчанию приглашение выглядит как Manual page имя(раздел) line x

где имя это имя справочной страницы, раздел — раздел, в котором она была найдена и x — номер текущей строки. Приглашение устанавливается с помощью переменной окружения $LESS.

Данное значение по умолчанию можно изменить с помощью параметра -r. Значение параметра может содержать текст $MAN_PN, вместо которого подставляется имя текущей справочной страницы и её название раздела, окружённое «(» и «)». Строка, используемая для создания приглашения по умолчанию, могла бы выглядеть как

\ Справочная\ страница\ \$MAN_PN\ ?ltстрока\ %lt?L/%L.:

byte\ %bB?s/%s..?\ (ВСЕ):?pB\ %pB\\%..

(h — справка, q — выход)

Здесь она разделена на три строки только для повышения читаемости. Описание её составных частей смотрите в справочной странице less(1). Строка приглашения сначала обрабатывается оболочкой командной строки. Все двойные кавычки, обратные кавычки и обратные косые черты в приглашении должны предваряться обратными косыми чертами для экранирования. Строка приглашения может заканчиваться экранированным $, за которым можно указать другие параметры less. По умолчанию, man указывает параметры -ix8.

Переменная окружения $MANLESS, описанная ниже, может использоваться для назначения строки приглашения по умолчанию, если это не задано в командной строке.

-7, --ascii

При просмотре справочной страницы в изначальной кодировке ascii(7) на 7-битном терминале или эмуляторе терминала при использовании описания устройства latin1(7) с GNU nroff некоторые символы могут неправильно отображаться . Этот параметр позволяет справочным страницам в изначальной ascii отображаться в ascii, используя устройство latin1. Любой latin1 текст не будет транслироваться. Следующая таблица показывает выполняемые трансляции: некоторые её части могут отображаться правильно только при использовании GNU nroff устройства latin1(7).

Описание

Восьмеричный код

latin1

ascii

длинный перенос

255

‐

-

bullet (точка в центре)

267

•

o

значок ударения

264

´

'

знак ударения

327

×

x

Если колонка latin1 отображается правильно, то ваш терминал может быть настроен для отображения символов latin1 и этот параметр ненужен. Если колонки latin1 и ascii одинаковы, то вы читаете эту страницу с помощью данного параметра, или man не отформатировал страницу с помощью описания устройства latin1. Если колонка latin1 отсутствует или повреждена, то вам может потребоваться просматривать справочные страницы с помощью этого параметра.

Этот параметр игнорируется при использовании параметров -t, -H, -T или -Z, и может быть бесполезен для nroff, если он не от GNU.

-E кодировка, --encoding=кодировка

Сгенерировать вывод в символьной кодировке, отличной от используемой по умолчанию. Кроме реальной символьной кодировки, типа UTF-8, для обратной совместимости в кодировке можно указывать устройство nroff, например, ascii, latin1 или utf8.

--no-hyphenation, --nh

Обычно, nroff автоматически разбивает текст при окончании строки даже на словах, у которых нет переносов, если это необходимо для размещения слов в строке для избежания лишних пробелов. Этот параметр отключает автоматический перенос; в результате перенос выполняется только для слов, в которых есть символы переноса. Если вы пишите справочную страницу и просто хотите отключить в nroff перенос в словах в неподходящем месте, не используйте этот параметр, а почитайте документацию к nroff; например, вы можете поместить "\%" внутрь слова в место возможного разрыва, или поместить "\%" в начало слова, что не даст его разорвать совсем.

--no-justification, --nj

Обычно, nroff автоматически выравнивает текст по обеим границам. Этот параметр выключает полное выравнивание, оставляя выравнивание по левому краю, получается так называемый текст "без выключки по правому краю". Если вы пишите справочную страницу и просто хотите отключить в nroff выравнивание в некоторых параграфах, не используйте этот параметр, а почитайте документацию к nroff; например, вы можете использовать запросы ".na", ".nf", ".fi", и ".ad" для временного отключения выравнивания и заполнения.

-p строка, --preprocessor=строка

Задать последовательность препроцессоров для запуска перед nroff или troff/groff. Не во всех системах имеется полный набор препроцессоров. Некоторые препроцессоры и буквы, используемые для их обозначения: eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r). Этот параметр заменяет значение переменной окружения $MANROFFSEQ. zsoelim запускается всегда в качестве первого очень быстрого препроцессора.

-t, --troff

Использовать groff -mandoc для форматирования справочной страницы и вывода в стандартный выходной поток. Этот параметр не требуется вместе с -H, -T или -Z.

-T[устройство], --troff-device[=устройство]

Этот параметр используется для замены вывода groff (или, возможно, troff) на более подходящий для устройства, отличного от используемого по умолчанию. Подразумевается -t. Примеры (работают с groff-1.23.0) включают dvi, latin1, pdf, ps, utf8, X75 и X100.

-H[браузер], --html[=браузер]

Этот параметр заставляет groff создавать HTML -страницу, и отображать её в веб-браузере. Выбор браузера определяется необязательным значением браузер, переменной окружения $BROWSER, или, если ничего не указано, значением по умолчанию, установленным при компиляции программы (обычно lynx). Этот параметр предполагает -t, и работает только с GNU troff.

-X[dpi], --gxditview[=dpi]

С этим параметром вывод groff осуществляет в графическое окно с помощью программы gxditview. Значениями dpi (точек на дюйм) могут быть 75, 75-12, 100 или 100-12; по умолчанию 75; в вариантах с -12 в конце используется базовый шрифт в 12 точек. Этот параметр подразумевает -T со значениями устройств X75, X75-12, X100 и X100-12 соответственно.

-Z, --ditroff

groff запустит troff, а затем использует соответствующий постпроцессор для создания результата, подходящего для выбранного устройства. Если groff -mandoc совпадает с groff, то данный параметр передаётся groff и использование постпроцессора отменяется. Подразумевает -t.

### Выдача справки
-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## КОД ВЫХОДА
0

Успешное выполнение программы.

1

Была показана справка об использовании, произошла синтаксическая ошибка или проблемы в файле настройки.

2

Ошибка при работе.

3

Дочерний процесс завершился с ненулевым кодом выхода.

16

По крайней мере одна из страниц/файлов/ключевых слов не существует или для неё при поиске ничего не найдено.

## ОКРУЖЕНИЕ
MANPATH

Если установлена переменная окружения $MANPATH, то её значение используется в качестве пути поиска справочных страниц. О том, как используется эта переменная окружения и поведение по умолчанию, смотрите раздел ПУТЬ ПОИСКА в manpath(5).

MANROFFOPT

Всякий раз, когда man вызывает программу форматирования (nroff, troff или groff) в её командную строку добавляется содержимое $MANROFFOPT. Например, MANROFFOPT=-P-i указывает программе форматирования выделять текст курсивом (который поддерживается не всеми терминалами) вместо подчёркивания.

MANROFFSEQ

Если установлена переменная окружения $MANROFFSEQ, то её значение используется для определения набора препроцессоров для обработки каждой справочной страницы. Список препроцессоров по умолчанию зависит от системы.

MANSECT

Если установлена переменная окружения $MANSECT, то её значением является список разделов, указанных через двоеточие, и она используется для задания разделов справочных страниц, в которых будет производится поиск и в каком порядке. Значением по умолчанию является «1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x», если оно не заменено директивой SECTION в /etc/man_db.conf.

MANPAGER, PAGER

Если установлена переменная окружения $MANPAGER или $PAGER ($MANPAGER просматривается первой), то в ней задано имя программы для отображения справочной страницы. По умолчанию, используется less или cat, если less не найден или не является исполняемым файлом. Значением может быть просто имя команды или команды с параметрами, можно использовать экранирование интерпретатора команд (обратные слэши, одиночные кавычки или двойные кавычки). Нельзя объединять несколько команд каналами; если эту нужно, создайте сценарий-обёртку, который получает файл для показа в виде параметра или со стандартного ввода.

MANLESS

Если установлена переменная окружения $MANLESS, то её значение будет использоваться по умолчанию как строка приглашения для пейджера less, как если бы был указан параметр -r (так что любые появления текста $MAN_PN будут как-то раскрыты). Например, если вы хотите установить строку приглашения дословно в “my prompt string”, то установите $MANLESS равной ‘-Psmy prompt string’. Указанное значение параметра -r замещает значение переменной окружения.

BROWSER

Если установлена переменная окружения $BROWSER, то её значение представляет собой список команд, разделяемых двоеточием; каждая из них используется для попытки запуска веб-браузера для man --html. В каждой команде %s заменяется именем файла, содержащим HTML результат от groff, %% заменяется одним знаком процента (%), а %c заменяется двоеточием (:).

SYSTEM

Установка значения переменной окружения $SYSTEM равносильна указанию параметра -m.

MANOPT

Если установлена переменная окружения $MANOPT, то она анализируется раньше командной строки man и должна задаваться в том же формате. Значения всех специальных переменных окружения man могут быть заданы в параметрах командной строки, а включение в $MANOPT показывает, что данный параметр скоро устареет. Обратите особое внимание на то, что все пробелы, которые должны быть частью значения параметра, нужно экранировать.

MANWIDTH

Если установлена переменная окружения $MANWIDTH, то её значение используется в качестве длины строки форматируемых справочных страниц. Если она не установлена, то справочные страницы будут отформатированы по длине строки текущего терминала (используется значение переменной $COLUMNS, и вызов ioctl(2), если он доступен, или 80 символов, если ничего недоступно). Cat страницы будут сохраняться на диск только, если может быть использовано форматирование по умолчанию, то есть когда длина строки терминала лежит в промежутке между 66 и 80 символами.

MAN_KEEP_FORMATTING

Обычно, если вывод не направляется на терминал (например, в файл или канал), символы форматирования отбрасываются для облегчения чтения результата не имея специальных инструментов. Однако, если переменная окружения $MAN_KEEP_FORMATTING установлена в непустое значение, то символы форматирования остаются. Это может быть полезно для оболочек вокруг man, которые распознают символы форматирования.

MAN_KEEP_STDERR

Обычно, если вывод направляется на терминал (например, в пейджер), все ошибки вывода команды, используемой для создания форматированного варианта справочной страницы, отбрасываются во избежании порчи отображаемого текста. Программы типа groff часто выводят относительно безобидные сообщения об ошибках, например о печатных проблемах плохого выравнивания вперемешку с информацией справочной страницы. Однако, некоторые пользователи всё равно хотели бы их видеть, и поэтому, если установить переменную окружения $MAN_KEEP_STDERR в непустое значение, вывод ошибок будет производиться как обычно.

MAN_DISABLE_SECCOMP

В Linux, man, обычно, ограничивает подпроцессы, работающие с ненадёжными данными, с помощью изолированной среды seccomp(2). Это позволяет безопасно запускать сложный код разбора произвольных справочных страниц. Если это приводит к ошибке по причине не связанной с содержимым отображаемой справочной страницы, то изолированную среду можно отключить, указав непустое значение в переменной $MAN_DISABLE_SECCOMP.

PIPELINE_DEBUG

Если переменная окружения $PIPELINE_DEBUG равна «1», то man выведет отладочные сообщения в стандартный поток ошибок из каждого запускаемого подпроцесса.

LANG, LC_MESSAGES

В зависимости от системы и реализации, одна или обе переменные $LANG и $LC_MESSAGES будут просмотрены для определения текущей локали сообщений. man будет отображать свои сообщения в этой локали (если они для неё есть). Подробней смотрите в setlocale(3).

## ФАЙЛЫ
/etc/man_db.conf

Файл настройки man-db.

/usr/share/man

Глобальная иерархия справочных страниц.

## STANDARDS
POSIX.1-2001, POSIX.1-2008, POSIX.1-2017.

## СМОТРИТЕ ТАКЖЕ
apropos(1), groff(1), less(1), manpath(1), nroff(1), troff(1), whatis(1), zsoelim(1), manpath(5), man(7), catman(8), mandb(8)

Документация на некоторые пакеты может быть доступна в других форматах, например, info(1) или HTML.

## ИСТОРИЯ
1990, 1991 – изначально написана Джоном В. Итоном (John W. Eaton, jwe@che.utexas.edu).

23 декабря 1992: Рик Фейт (Rik Faith, faith@cs.unc.edu) исправил ошибки, найденные Виллемом Касдорпом (Willem Kasdorp, wkasdo@nikhefk.nikef.nl).

30 апреля 1994 – 23 февраля 2000: Вильф (Wilf. G.Wilford@ee.surrey.ac.uk) разрабатывал и сопровождал этот пакет с помощью некоторых других людей.

30 октября 1996 – 30 марта 2001: Фабрицио Полако (Fabrizio Polacco, <fpolacco@debian.org> сопровождал и улучшал этот пакет для проекта Debian с помощью всего сообщества.

31 марта 2001 – настоящие дни: Колин Уотсон (Colin Watson, <cjwatson@debian.org> занимается разработкой и сопровождением man-db.

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


man-recode

title: man-recode(1)

summary: изменяет кодировку справочных страниц

text:
# man-recode(1)

## НАЗВАНИЕ
man-recode - изменяет кодировку справочных страниц

## СИНТАКСИС
man-recode -t конечная-кодировка {--suffix=суффикс|--in-place} [-dqhV] [имя-файла]

## ОПИСАНИЕ
Программа man-recode преобразует кодировку у нескольких справочных страниц, определяя входную кодировку каждой страницы. Это полезно в случае, когда нужно навсегда преобразовать страницы, использующих устаревший набор символов, или для сборки системы, в которой требуется привести набор страниц к единой кодировке (обычно, UTF-8) для установки. При преобразовании нескольких справочных страниц эта программа работает намного быстрее чем выполнение man --recode или manconv для каждой страницы отдельно.

Если объявление кодировки найдено в первой строке справочной страницы, то это значение используется в качестве начальной кодировки этой страницы. При отсутствии начальная кодировка определяется из имени файла.

Объявления кодировки имеют следующий формат:

```
'\" -*- coding: UTF-8 -*-
```

или (если для справочной страницы также указаны препроцессоры):

```
'\" t -*- coding: ISO-8859-1 -*-
```

## ПАРАМЕТРЫ
-t кодировка, --to-code кодировка

Преобразовать справочные страницы в указанную кодировку.

--suffix=суффикс

Формирует имя каждого выходного файла добавлением суффикса к имени входного файла после удаления из имени расширения сжатия.

--in-place

Перезаписывает каждый входной файл выходным после удаления из имени расширения сжатия.

-q, --quiet

Не показывать сообщения об ошибках, если кодировка страницы не может быть изменена.

-d, --debug

Показывать отладочную информацию.

-h, --help

Показать справочное сообщение и закончить работу.

-V, --version

Показать информацию о версии.

## СМОТРИТЕ ТАКЖЕ
iconv(1), man(1), manconv(1)

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db

## АВТОР

```
Colin Watson (cjwatson@debian.org).
```


manconv

title: manconv(1)

summary: изменяет кодировку справочной страницы

text:
# manconv(1)

## НАЗВАНИЕ
manconv - изменяет кодировку справочной страницы

## СИНТАКСИС
manconv -f [начальная-кодировка[:начальная-кодировка...]] -t конечная-кодировка [-dqhV] [имя-файла]

## ОПИСАНИЕ
manconv изменяет кодировку справочной страницы, почти как iconv. В отличие от iconv, можно указать несколько возможных начальных кодировок. Это полезно, если справочные страницы установлены в каталогах без явного объявления кодировки, так как они могут быть в UTF-8 или в какой-то устаревшей кодировке.

Если объявление кодировки найдено в первой строке справочной страницы, то это значение заменяет любые начальные кодировки, указанные в командной строке запуска manconv. Объявление кодировки имеет следующую форму:

```
'\" -*- coding: UTF-8 -*-
```

или (если для справочной страницы также указаны препроцессоры):

```
'\" t -*- coding: ISO-8859-1 -*-
```

## ПАРАМЕТРЫ
-f кодировки, --from-code кодировки

Попытаться применить каждую кодировку (список значений через двоеточие) по порядку в качестве начальной. По умолчанию входные кодировки определяются из имени файла.

-t кодировка, --to-code кодировка

Преобразовать текст справочной страницы в указанную кодировку.

-q, --quiet

Не показывать сообщения об ошибках, если кодировка страницы не может быть изменена.

-d, --debug

Показывать отладочную информацию.

-h, --help

Показать справочное сообщение и закончить работу.

-V, --version

Показать информацию о версии.

## СМОТРИТЕ ТАКЖЕ
iconv(1), man(1), man-recode(1)

## АВТОР

```
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db