+.\" Russian translation of joe man page. +.\" May be distributed under the GNU General Public License +.\" +.TH JOE 1 "May 2004" "Joe 3.0" +.SH Название +joe \- Joe's Own Editor +.SH Использование +.B joe [global-options] [ [local-options] filename ]... + +.B jstar [global-options] [ [local-options] filename ]... + +.B jmacs [global-options] [ [local-options] filename ]... + +.B rjoe [global-options] [ [local-options] filename ]... + +.B jpico [global-options] [ [local-options] filename ]... + +.B jice [global-options] [ [local-options] filename ]... +.SH Описание +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 по адресу +\fBwww.sourceforge.net/projects/joe-editor\fR. + +.SH Использование + +Для запуска редактора введите имя +\fBjoe\fR, можно со следующими за ним именами редактируемых файлов. +Каждому имени файла могут предшествовать ключи локальных опций +(ниже см. таблицу локальных опций). В командной строке также могут быть указаны ключи +глобальных опций, воздействующие на редактор в целом (ниже см. таблицу +глобальных опций). Если вы редактируете новый файл - можете указать его имя +либо в командной строке при запуске редактора, либо из редактора при +сохранении файла. Предоставляется специальный синтаксис имени файла для +редактирования вывода программ, стандартного ввода/вывода или участков +файлов или устройств. Подробности см. ниже в разделе +\fBИмена файлов\fR. + +Запустив редактор, вы можете вводить в нем текст и использовать специальные +управляющие последовательности для выполнения других задач редактирования. +Описание того, что выполняет та или другая последовательность, вы можете +найти ниже в этом справочом руководстве либо набрав в редакторе +\fB^K H\fR для получения подсказки. + +Замечания по некоторым общепринятым договоренностям: + +\fB^\fR значит, что вы удерживаете клавишу \fBControl\fR при нажатии +указанной далее клавиши (аналогично тому, как работает \fBShift\fR +для ввода буквы верхнего регистра). Некоторые управляющие +последовательности дублируются +другими клавишами, так что вам не всегда обязательно нажимать Control: +\fBESC\fR работает как +\fB^[\fR, \fBDel\fR - как \fB^?\fR, \fBBackspace\fR - +\fB^H\fR, \fBTab\fR - \fB^I\fR, +\fBReturn\fR или \fBEnter\fR - это \fB^M\fR и +\fBLinefeed\fR может использоваться вместо \fB^J\fR. +На некоторых клавиатурах отдельные управляющие клавиши могут не работать. +\fB^_\fR, \fB^^\fR и \fB^@\fR обычно вводятся без нажатия +Shift (т.е., пробуйте \fB^-\fR, \fB^6\fR и +\fB^2\fR). На других клавиатурах эти клавиши могут быть переназначены. +Попробуйте: +\fB^.\fR, \fB^,\fR и \fB^/\fR. \fB^ПРОБЕЛ\fR обычно можно использовать +вместо +\fB^@\fR. \fB^\\\fR и \fB^]\fR интерпретируются многими коммуникационными +программами, включая +telnet и kermit. В этом случае вам придется нажать данную клавишу дважды, +чтобы прорваться через коммуникационную программу. + +После нажатия \fB^K H\fR в верхней части экрана появится первое окно +подсказки. Вы можете продолжать вводить и редактировать текст, пока оно там +находится. Для листания подсказки используйте +^[, и ^[. (т.е., ESC , и +ESC .). Нажмите \fB^K H\fR снова для закрытия окна подсказки. + +Вы можете настроить раскладку клавиатуры, окна подсказки и различное +поведение редактора, скопировав инициализационный файл +JOE (обычно +\fB@JOERC@/joerc\fR) в \fB.joerc\fR в вашей домашней директории и затем +отредактировав его. Ниже см. раздел \fBjoerc\fR. + +Чтобы использовать JOE в качестве редактора по умолчанию для +e-mail и News, вам необходимо установить переменные среды +\fBEDITOR\fR и \fBVISUAL\fR в стартовом командном файле вашего шелла +(\fB.cshrc\fR или \fB.profile\fR) так, чтобы они ссылались на JOE (joe +обычно располагается в \fB@BINDIR@/joe\fR). + +Также имеются некоторые специальные параметры выполнения, которые, возможно, +придется установить, в частности, если экран вашего терминала изменяется не +так, как вы этого ожидаете. См. раздел +\fBПеременные среды\fR ниже. + +.SH Опции командной строки + +В командной строке могут быть указаны следующие глобальные опции: + +.IP -asis +Символы с кодами большими, чем 127, будут передаваться на терминал как есть, +вместо преобразования их в соответствующие символы с кодами меньшими 128. Если +это не срабатывает - проверьте ваш терминальный сервер. + +.IP -backpath\ path +Если эта опция задана - файлы резервных копий будут создаваться в указанной +директории, а не в "родной" директории редактируемого файла. + +.IP -baud\ nnn +Установить скорость передачи для оптимизации экранного вывыода. Joe +будет вставлять межсимвольные паузы для скоростей ниже 19200, что позволяет +обойти терминальную буферизацию и прерывать экранный вывод клавиатурным +вводом. Команды сколлинга не будут использоваться при указании скорости +38400 бод. Это полезно при использовании X-терминалов и экранов консоли, +которые не подключены через последовательную линию. + +.IP -beep +Joe будет издавать звонок в случае неправильных команд и по достижению +курсором границ ввода. + +.IP -columns\ nnn +Устанавливает количество колонок на экране. + +.IP -csmode +Продолженный режим поиска: команда поиска, следующая за первой, будет +продолжать поиск заданного ранее образца, а не запрашивать новый. Это +полезно для команд +^[S и ^[R, и когда joe изображает из себя emacs. + +.IP -dopadding +Joe обычно предполагает наличие какого-либо протокола управления потоком +между ним и терминалом. Если никакой протокол не используется - данная опция +заставляет joe выводить на терминал дополнительные +^@ как указано в termcap-описании терминала. +Дополнительные ^@ дают возможность терминалу закончить длительные +терминальные команды. + +.IP -exask +Эта опция дает возможность проверить имя файла, сохраняемого по +^KX. + +.IP -force +Эта опция обеспечивает обязательное добавление перевода строки в конец +сохраняемого файла. + +.IP -help +Если указана эта опция - редактор будет стартовать с открытым окном +подсказки. + +.IP -keepup +Обычно поля строки состояния, в которых отображается номер позиции и префикс +управляющей последовательности, обновляются раз в секунду для уменьшения +нагрузки на процессор, но в случае указания этой опции обновление будет +производиться по каждому нажатию клавиши. + +.IP -lightoff +Если данная опция указана - отметка блока будет сниматься после любой +операции над блоком. + +.IP -lines\ nnn +Устанавливает количество строк экрана. + +.IP -marking +Текст между началом блока и курсором будет подсвечиваться (используйте +вместе с -lightoff и модифицированным файлом +joerc для получения отметки блока в стиле "брошенного якоря"). + +.IP -mid +Если эта опция установлена и курсор перемещается за пределы экрана - окно +будет скроллироваться таким образом, чтобы курсор оставался в центре. Эта +опция принудительно выставляется для медленных терминалов, не имеющих команд +скроллинга. + +.IP -nobackups +Эта опция запрещает создание файлов резервных копий. + +.IP -nonotice +Эта опция запрещает вывод информации о копирайте при запуске редактора. + +.IP -nosta +Эта опция запрещает отображение строки состояния вверху экрана. Понадобится, +если вы хотите видеть на экране только ваш текст или используете +vt52. + +.IP -noxon +Пытается выключить обработку ^S/^Q. Полезно, когда JOE изображает из себя +WordStar или EMACS. + +.IP -orphan +Когда данная опция активна, дополнительные файлы в командной строке будут +помещаться в +скрытых буферах, а не в отдельных окнах. Полезно, когда JOE изображает из себя +EMACS. + +.IP -pg\ nnn +Определяет количество строк, оставляемых на эране после +PgUp/PgDn (^U/^V). Если указано значение -1 - остается пол-экрана. + +.IP -skiptop\ nnn +Не использовать верхние nnn строк экрана. Полезно, когда joe используется в +качестве BBS-редактора. + +.LP +Каждая из этих опций может также быть определена в файле +joerc. Кроме того, опции +NOXON, BAUD, LINES, COLUMNS и DOPADDING могут быть определены в виде +переменных среды. + +Переменная среды JOETERM может быть установлена для замены +обычной переменной среды TERM для определения типа вашего терминала. + +Следующие опции могут быть указаны перед каждым именем файла в командной +строке: + +.IP +nnn +Курсор при старте размещается на строке с указанным номером. + +.IP -crlf +Joe использует CR-LF в качестве завершителя строки вместо просто +LF. Для редактирования файлов из MS-DOS или VMS. + +.IP -wordwrap +Joe переносит слово на новую строку по достижению правого края. + +.IP -autoindent +При нажатии Enter в конце строки с отступом этот отступ переносится в +начало новой строки. + +.IP -overwrite +Ввод замещает существующие символы, а не вставляется перед ними. + +.IP -lmargin\ nnn +Устанавливает левую границу. + +.IP -rmargin\ nnn +Устанавливает правую границу. + +.IP -tab\ nnn +Устанавливает ширину табуляции. + +.IP -indentc\ nnn +Устанавливает символ заполнения для ^K, и ^K. (32 - ПРОБЕЛ, 9 - TAB). + +.IP -istep\ nnn +Устанавливает шаг перемещения для ^K, и ^K.. + +.IP -linums +В начале каждой строки выводится ее номер. + +.IP -rdonly +Только читать файл. + +.IP -keymap\ name +Использовать альтернативную секцию файла +joerc для определения клавиатурных управляющих последовательностей. + +.LP +Эти опции также могут быть определены в файле joerc. Они могут быть +установлены в зависимости от расширения имени файла. Для программ +(с расширениями .c, .h или .p) обычно включается автооотступ. Перенос слов +разрешен для всех прочих файлов, кроме инициализационных rc-файлов. + +.SH Редактирование +.SS Основы редактирования + +Когда вы вводите символы в редакторе, они обычно вставляются в редактируемый файл +(или добавляются к нему, если курсор стоит в конце файла). Это - нормальный +режим работы редактора. Если вы хотите заменить некоторый существующий текст +- можете удалить его до или после ввода нового текста. Для удаления текста +может использоваться клавиша \fBBackspace\fR: поместите курсор справа от +текста, который требуется удалить и нажмите +\fBBackspace\fR нужное количество раз. + +Нажатие \fBEnter\fR или \fBReturn\fR вызывает вставку разрыва строки. +Например, если курсор находился всередине строки и вы нажали \fBEnter\fR, +эта строка будет разрезана на две, и курсор будет находиться вначале второй +строки. Нажатие \fBBackspace\fR в начале строки приведет к удалению +предыдущего разрыва строки. + +Для перемещения по файлу используйте клавиши стрелок. Если на вашей +клавиатуре таких клавиш нет (или они почему-то не работают) - используйте +\fB^F\fR для перемещения вперед (вправо), \fB^B\fR - для перемещения назад +(влево), \fB^P\fR - на предыдущую строку (вверх), и +\fB^N\fR - на следующую (вниз). Клавиши стрелок вправо и влево просто +перемещают курсор на один символ вправо или влево по тексту за раз: если вы +находитесь в начале строки и нажмете стрелку влево - то окажетесь в конце +предыдущей строки. Нажатие клавиш стрелок вверх и вниз вызывает перемещение +курсора на столько символов, чтобы оказаться в той же позиции предыдущей или +последующей строки, в которой находились в исходной строке. + +Если вы желаете сделать отступ перед вводом текста - можете использовать +клавишу \fBTAB\fR. Она вставляет в текст специальный управляющий символ, +который заставляет следующие за ним символы вводиться с начала следующего +табулостопа (TAB STOP). Табулостопы обычно располагаются через каждые 8 +позиций, но это может быть изменено с помощью команды +\fB^T D\fR. Программисты на языках PASCAL и C часто располагают табулостопы +в каждой 4-ой позиции. + +Если по каким-либо причинам экран вашего терминала сбивается (например, при +получении сообщения о прибытии почты от программы biff), вы можете +потребовать от редактора перерисовать экран - нажатием \fB^R\fR. + +Имеются и другие команды для удаления текста и перемещения по файлу. +Например, можно нажать +\fB^D\fR для удаления символа в позиции курсора вместо удаления назад, как +это делает клавиша \fBBackspace\fR. \fB^D\fR также удаляет разрыв строки, +если курсор находится в конце строки. Нажмите \fB^Y\fR для удаления всей +строки в позиции курсора или \fB^J\fR для удаления от курсора до конца +строки. + +Нажмите \fB^A\fR для перемещения курсора в начало текущей строки. Нажмите +\fB^E\fR для перемещения курсора в конец строки. Нажатие \fB^U\fR или +\fB^V\fR приведет к скроллированию на полэкрана вверх или вниз. +"Скроллирование обозначает, что что текст на экране перемещается, но курсор +остается в одной и той же позиции относительно экрана. +Нажмите \fB^K U\fR или \fB^K V\fR для перемещения в начало или конец файла. +Другие команды удаления и перемещения вы можете найти на экране подсказки +редактора. + +Если вы сделали ошибку - можете отменить последнее действие нажатием +\fB^_\fR. На большинстве клавиатур вам потребуется прото нажать +\fB^-\fR для получения \fB^_\fR, но на некоторых вам понадобится для этого +одновременно удерживать \fBShift\fR и \fBControl\fR. +Если вы случайно ваполнили слишком много отмен - можно отменить предыдущую +отмену по нажатию \fB^^\fR (для этого на большинстве клавиатур следует +просто нажать \fB^6\fR). + +Если вы находитесь в одной позиции файла, а необходимо временно просмотреть +или отредактировать другой участок текста - вы сможете вернуться в исходную +позицию по нажатию \fB^K -\fR. Эта команда возвратит вас в то место, где +были выполнены последние изменения в файле. Вы можете перемещаться по +местам изменений с помощью +\fB^K -\fR и \fB^K =\fR, так же, как вдоль истории изменений с помощью команд +"отмена" и "отмена отмены". + +Когда вы закончите редактирование файла - нажмите \fB^K X\fR для выхода из +редактора. Если вы не редактировали ранее существовавший файл - у вас будет +запрошено имя, под которым вы хотите этот файл сохранить. + +Когда вы редактируете файл - в действительности изменению подвергается +только его копия. Так что если вы решите, что изменения, сделанные во время данного +сеанса редактирования, вам не нужны - можете нажать +\fB^C\fR для выхода из редактора без их сохранения. + +Если вы отредактировали файл и сохранили изменения - в текущей директории +будет создана резервная копия ("backup"), имя которой формируется путем +добавления символа ~ в конец имени редактируемого файла, и содержащая +исходную версию этого файла. + +.SS Переносы и форматирование + +Если вы будете вводить на правом краю экрана на программу на языке +C или PASCAL - экран будет скроллироваться вправо для того, чтобы удерживать +на нем текущее положение курсора. Если вы будете вводить на правом краю +данные в обычный файл (имя которого не закнчивается ни на +.c, ни на .h или .p), JOE автоматически перенесет последнее слово на +следующую строку, так что вам не обязательно нажимать +\fBEnter\fR. Это называется режимом автопереноса. Перенос слов может быть +разрешен или запрещен с помощью команды +\fB^T W\fR . Инициализационный файл JOE обычно настраивается так, чтобы +этот режим включался для всех файлов, не являющихся текстами программ. +Смотрите ниже раздел \fBjoerc\fR - как изменять это и другие умолчания. + +За исключением случая режима автопереноса, JOE не хранит абзацы +отформатированными, как это делают некоторые текстовые процессоры. Вместо +этого если вам потребуется отформатировать абзац - нажмите +\fB^K J\fR. Данная команда "выравнивает" абзац, в котором находится курсор, +пытаясь разместить в одной строке столько слов, сколько возможно. В данном +случае абзацем считается часть текста, ограниченная сверху и снизу пустыми +строками. + +Границы, в которых JOE выполняет форматирование абзаца и автоперенос слов, +могут быть установлены с помощью команд +\fB^T L\fR и \fB^T R\fR. Если левая граница установлена в значение, +отличное от 1, то кода вы начинаете вводить данные с начала строки - курсор +сразу перепрыгнет на указанную левую границу. + +Если вы желаете центрировать строку в указанных границах - используйте +команду \fB^K A\fR. + +.SS Режим замещения + +Иногда утомительно удалять старый текст перед вставкой нового или после нее. +Это случается, например, когда вы заполняете данные в таблице и вынуждены +следить за положением правого края этой таблицы. В таких случаях вы можете +перевести редактор в режим замещения с помощью последовательности +\fB^T T\fR. Если вы находитесь в данном режиме - вводимые символы замещают +собой существующие. Кроме того, +\fBBackspace\fR просто выполняет перемещение влево вместо удаления +расположенного там символа, если курсор находился не в конце и не в начале +строки. Режим замещения не является общепринятым при электронной обработке +текстов, поэтому рекомендуется вернуться к режиму вставки так скоро, как это +возможно, нажав \fB^T T\fR еще раз. + +Если вам необходимо выполнить вставку во время нахождения в режиме замещения +- нажмите \fB^@\fR. Это приведет к вставке в текст одиночного ПРОБЕЛА. + +.SS Управляющие и Мета- символы + +Каждый символ представляется некоторым числовым кодом. Например, кодом +символа 'A' является +65, а код '1' - 49. Все символы, которые вы обычно видите, имеют коды в +диапазоне 32 - 126 (данное соответствие между символами и их кодами +называется символьным набором ASCII). Коды вне этого диапазона, от 0 до 255, +обычно не отображаются, но иногда имеют некоторое специальное значение. +Символ с кодом 10, например, используется для обозначения конца строки. +Вы можете ввести эти неотображаемые +\fBуправляющие символы\fR, нажав сначала \fB`\fR, а затем - введя символ +из диапазона \fB@ A B C ... X Y Z [ ^ ] \e _\fR для получения кодов +0 - 31, и ? для получения 127. Например, если вы нажмете \fB` J\fR - +выполнится вставка символа разрыва строки, а если нажмете +\fB` I\fR - вставится символ табуляции (то же самое делает клавиша TAB). +Полезный управляющий символ - 12 (\fB` L\fR), который заставляет большинство +принтеров выполнить прогон страницы. Вы сможете заметить, что JOE выводит +этот символ как подчеркнутое L. Вы можете вводить символы с кодами более +127, называемые +\fBмета-символами\fR, нажав сперва \fB^\e\fR. Это добавит 128 +к коду следующего (возможно управляющего) введенного символа. +JOE выводит символы с кодами большими, чем +128, в инверсном изображении. В некоторых языках, имеющих больше символов, +чем в английском, метасимволы используются для остальных букв ихнего +алфавита. Вам придется перевести редактор в режим +\fBASIS\fR (описан далее), чтобы эти символы передавались на терминал без +преобразования. (Прим. переводчика: поскольку для всех кодовых наборов с +кириллицей так и происходит - +в большинстве дистрибутивов, используемых на территории бывшего СССР, режим +\fBASIS\fR для JOE включается по умолчанию). + +.SS Запросы +Если вы нажмете \fBTAB\fR во время любого запроса имени файла - +joe попытается по возможности дополнить вводимое вами имя. Если он не сможет +этого сделать из-за того, что возможно более одного варианта дополнения - +joe издаст звонок. Если вы нажмете +\fBTAB\fR еще раз - будет предложен список дополнений. Вы сможете +использовать клавиши стрелок для перемещения по этому меню и нажать ENTER +или ПРОБЕЛ для выбора элемента. Если вы нажмете первую букву одного из +элементов списка - он будет выбран, или, если более одного элемента имеют +одинаковую первую букву - курсор будет прыгать по этим элементам. +Если вы выберете поддиректорию или .. - имя директории добавится к запросу и +новая директория будет загружена в меню. Вы можете нажать +Backspace для возврата к предыдущей директории. + +Большинство запросов ведут историю обращения к ним. Вы можете перемещаться +по этим историям с помощью клавиш-стрелок вверх и вниз. + +Запросы в действительности являются однострочными окнами без строки +состояния, так что вы можете использовать в нем любые команды +редактирования. История запроса в действительности представлена разными +строками в одном и том же "файле запроса". Поэтому вы можете выполнять поиск +в истории запроса с помощью обычной команды +\fB^K F\fR. + +Поскольку запросы являются окнами - вы также можете переключаться между ними +с помощью \fB^K P\fR и \fB^K N\fR. + +.SS Где я? + +Нажмите \fB^K ПРОБЕЛ\fR для получения отчета JOE о номере строки и колонки, +а также номере текущего байта в файле, в последней строке экрана. +Также показывается код текущего символа. Вы можете настроить редактор так, +чтобы номер текущей строки и/или колонки постоянно отображался в строке +состояния, поместив специальные управляющие последовательности в настроечную +строку строки состояния. Более подробная информация по этому вопросу +приведена в файле joerc. + +.SS Операции над файлами + +Вы можете нажать \fB^K D\fR для сохранения текущего файла (возможно, под +именем, отличающимся от оригинального). После того, как файл сохранен - +можете нажать +\fB^K E\fR для редактирования другого файла. + +Если вы желаете сохранить только отдельную часть файла - см. ниже раздел +\fBБлоки\fR. + +Если вы желаете включить другой файл в редактируемый - используйте для его +вставки команду \fB^K R\fR. + +.SS Временный приостанов редактора + +Если вам необходимо временно приостановить редактор и вернуться в шелл - +нажмите +\fB^K Z\fR. Вы можете сделать это, к примеру, для того, чтобы прервать +редактирование и ответить на почтовое сообщение или почитать man page. +Для возврата в редактор вам надо будет выполнить команду fg или exit (вам +будет сказано какую именно, когда вы нажмете \fB^K Z\fR). + +.SS Поиск текста + +Нажмите \fB^K F\fR, чтобы выполнить поиск фрагмента текста (\fBстроки\fR) вперед +или назад. У вас будет запрошен образец поиска. После нажатия +\fBEnter\fR вы получите запрос на ввод опций поиска. +Вы можете просто нажать \fBEnter\fR еще раз, чтобы редактор сразу начал +поиск вперед, или можете ввести одну или больше из следующих опций: + +.IP \fBb +Поиск назад, а не вперед. + +.IP \fBi +Не различать при поиске символы верхнего и нижнего регистров. Обычно +считается, что они различны. + +.IP \fBnnn +(где \fBnnn\fR - число) Если вы введете число - JOE найдет +n-ное вхождение искомого текста. Это полезно для перехода в нужные места +внутри файлов, структурированных некоторым определенным образом. + +.IP \fBr +Замещать текст. Если вы введете опцию \fBr\fR, далее у вас будет запрошен +замещающий текст. Каждый раз при нахождении текста у вас будет запрашиваться +- желаете ли вы выполнить его замещение. Вы можете нажать: +\fBy\fR для замещения текста и выполнения дальнейшего поиска, +\fBn\fR - чтобы не замещать текст, но продолжать поиск, +\fBr\fR - для замены всех последующих вхождений далее по файлу без +дополнительных запросов на подтверждение, или +\fB^C\fR для прекращения поиска и замены. + +.PP +Вы можете нажать \fB^L\fR для повторения предыдущего поиска. + +.SS Регулярные выражения + +При поиске текста в качестве образца могут использоваться различные специальные +символьные последовательности: + +.IP \fB\e* +Это означает ноль или более символов. Например, если вы зададите +\fBA\e*B\fR в качестве образца поиска, +JOE попытается найти A со следующим далее произвольным количеством любых +символов, за которыми следует B. + +.IP \fB\e? +Ровно один символ. Например, если вы укажете в качестве образца поиска +\fBA\e?B\fR, +JOE найдет AXB, но не AB, и не AXXB. + +.IP \fB\e^\ \e$ +Это соответствует началу и концу строки. Например, если вы укажете +\fB\e^test\e$\fR, то JOE будет искать строку, в которой содержится только +слово \fBtest\fR. + +.IP \fB\e<\ \e> +Это соответствует началу или концу слова. Например, если вы зададите +\fB\e<\e*is\e*\e>\fR, то joe будет искать слово, содержащее подстроку +\fBis\fR. + +.IP \fB\e[...] +Это соотвествует одному из символов, которые заключены в квадратные скобки. +Например, если вы введете в качестве образца поиска +\fB\e[Tt]his\fR, то JOE найдет +и \fBThis\fR, и \fBthis\fR. В скобках могут указываться и диапазоны +символов. Например, \fB\e[A-Z]\fR соответствует любой заглавной латинской +букве. Если первым символом в скобках является +\fB^\fR, то JOE будет искать символы, не указанные внутри скобок. + +.IP \fB\ec +Это работает аналогично \fB\e*\fR, но соответствует сбалансированным +выраженияс языка C. +Например, если вы будете искать +\fBmalloc(\ec)\fR, то JOE найдет любой вызов функции +\fBmalloc\fR, даже если в нем находятся вложенные \fB)\fR. + +.IP \fB\e+ +Будет искаться ноль или больше символов, равных следующему сразу за +\fB\e+\fR. Например, если вы укажете \fB\e[ ]\e+\e[ ]\fR, причем в +квадратных скобках находятся ПРОБЕЛ и TAB, то JOE будет искать пробельные +области. + +.IP \fB\e\e +Соответствует одиночному \e. + +.IP \fB\en +Будет искаться специальный символ конкца строки. + +.PP +Следующие специальные символьные последовательности могут использоваться в +строке замещения: + +.IP \fB\e& +Подставляется текст образца поиска. Например, если строкой поиска было +\fB\e<\e*\e>\fR, что соответствует словам, и +вы укажете \fB"\e&"\fR, то joe будет заключать слова в кавычки. + +.IP \fB\e0\ -\ \e9 +Это будет замещаться текстом, который соответствует N-ному +\fB\e*\fR, \fB\e?\fR, +\fB\e+\fR, \fB\ec\fR, \fB\e+\fR, или \fB\e[...]\fR в образце поиска. + +.IP \fB\e\e +Используйте это, если вам необходимо поместить +\fB\e\fR в строку замещения. + +.IP \fB\en +Используйте это, если вам необходимо поместить символ перевода строки в +строку замещения. +.PP +Несколько примеров: + +Предположим, у вас имеется список адресов, по одному в строке, начинающейся +со слова "Address:", и элементы разделены запятыми. Вроде следующего: + +Address: S. Holmes, 221b Baker St., London, England + +Если вы захотите переформировать этот список, чтобы сначала шло наименование +страны, затем - города, за ним - имя человека, и в конце - адрес, вы можете +сделать следующее: + +Нажмите \fB^K F\fR чтобы начать поиск, и введите: + +\fBAddress:\e*,\e*,\e*,\e*\e$\fR + +что соответсвует "Address:", четырем элементам, разделенным запятыми, +и затем - конец строки. При запросе оции поиска нажмите +\fBr\fR для замены строки, и затем введите: + +\fBAddress:\e3,\e2,\e0,\e1\fR + +для перетасовки данных нужным вам способом. После нажатия Enter начнется +поиск и исходная строка будет преобразована в: + +Address: England, London, S. Holmes, 221b Baker St. + + +.SS Блоки + +Если вы желаете перемещать, копировать, сохранять или удалять отдельные +части текста - вы можете использовать для этого отмеченные блоки. Сначала +поместите курсор в начало текста, с которым желаете работать, и нажмите +\fB^K B\fR. Затем переместите курсор за последний символ текста и нажмите +\fB^K K\fR. Текст между \fB^K B\fR и \fB^K K\fR отметится подсветкой. +Теперь вы можете переместить курсор куда-нибуди еще и нажать +\fB^K M\fR для перемещения отмеченного текста туда. +Вы можете нажать \fB^K C\fR, чтобы вставить копию отмеченного текста +в точку расположения курсора. +\fB^K Y\fR удалит отмеченный текст. +\fB^K W\fR запишет его в файл. + +Очень полезная команда - \fB^K /\fR, которая фильтрует блок текста через +команду unix. Например, если вы отметите список слов, и затем наберете +\fB^K / sort\fR, то этот список отсортируется. Другая полезная команда unix +для \fB^K /\fR - \fBtr\fR. Если вы введете +\fB^K / tr a-z A-Z\fR, то все латинские символы в блоке будут переведены в +верхний регистр. + +По завершению операций с блоком вы можете просто оставить отметку включенной +и не обращать на нее внимания +(но, естественно, если вы случайно нажмете \fB^K +Y\fR ...). Если же это вас действительно беспокоит - просто нажмите +\fB^K B ^K K\fR для снятия отметки. + +.SS Сдвиги блоков в программах +Режим автоотступа включается командой \fB^T I\fR. +\fBjoerc\fR обычно настроен так, что файлы с именами, зачанчивающимися на .p, .c +или .h открываются с включенным автоотступом. Если автоотступ включен и вы +нажимаете \fBEnter\fR, курсор переместится в ту же позицию следующей строки, +в которой находился первый непробельный символ исходной. + +Вы можете использовать команды +\fB^K ,\fR и \fB^K .\fR для сдвига блока текста влево и вправо. +to the left or right. Если вы попытаетесь выполнить эти команды, когда блок +не отмечен - весь редактируемый текст будет отмечен, и при последующих +вызовах \fB^K ,\fR и \fB^K .\fR будет смещаться. Количество колонок, на +которое выполняется сдвиг данными командами, может быть установлено с +помощью опции \fB^T\fR. + +.SS Окна +Вы можете редактировать более одного файла одновременно, или разные части +одного и того же файла. Для этого нажмите \fB^K O\fR, чтобы разрезать экрак +на два окна. Используйте \fB^K P\fR или \fB^K N\fR для перемещения между +окнами. Используйте \fB^K E\fR для редактирования нового файла в одном из +окон. Окно закроется, когда вы сохраните файл по +\fB^K X\fR или отмените редактирование по \fB^C\fR. Если вы прервете +радактирование одного и того же файла, но редактируемого в двух окнах, +закроется одно из окон закроется, но не файл. + +Вы можете повторно нажать +\fB^K O\fR в окне, чтобы создать больше окон. Если на экране образовалось +слишком много окон, но вы не хотите их закрывать - можете нажать +\fB^K I\fR. Это приведет к тому, что на экране будет отображаться только +одно текущее окно. Повторное нажатие этой комбинации приведет к обратной попытке +- разместить все спрятанные окна на экране. Если вы открыли больше окон, чем +может поместиться на экране - вы можете нажать +\fB^K N\fR в самом верхнем или \fB^K P\fR в самом нижнем окне для доступа к +тем окнам, которые не влезли. + +Если в командной строке вызова JOE вы указали более одного файла - каждый +будет размещен в отдельном окне. + +Вы можете изменить высоту окна с помощью команд \fB^K G\fR и \fB^K T\fR. + +.SS Клавиатурные макросы + +С помощью макросов вы можете записать последовательность нажатий клавиш и +затем повторять ее по нажатию двух клавиш. Это полезно для автоматизации +повторяющихся задач. Чтобы начать запись макро - нажмите +\fB^K [\fR и затем число от 0 до 9. В статусной строке появится сообщение +(Запись макро n...). Теперь вводите последовательность клавиш, которую +желаете повторять. Вводимые команды будут действовать как обычно. +Нажмите \fB^K ]\fR для завершения записи макро. Нажмите +\fB^K\fR с последующей цифрой для повторения записанной ранее +последовательности нажатий. + +Например, если вы желаете поместить "**" в начало некоторых строк - можете +ввести следующее: + +\fB^K [ ^A ** \fR<стрелка вниз> \fB^K ]\fR + +В начале записи макро перемещаете курсор в начало строки, вставляете "**", +перемещаете курсор на следующую строку и заканчиваете запись. Поскольку мы +включили в макро команду перемещения курсора на следующую строку - мы сможем +циклически поторять вызов макро, не переводя курсор вручную, что вам следует +часто иметь в виду при записи макро. + +Если вы обнаружите, что макро, которое вы записывете, само включает в себя +повторяющиеся нажатия клавиш - вы можете записать макро внутри макро, только +с другим номером. Вы также можете вызывать ранее записанное макро при записи +нового. + + +.SS Повтор +Вы можете использовать команду повтора +\fB^K \e\fR, чтобы повторять вызов макро или любой команды редактирования, +или даже обычный символ, указанное количество раз. Нажмите +\fB^K \e\fR, введите желаемое число повторений команды и нажмите +\fBEnter\fR. Следующая введенная команда повторится указанное число раз. + +Например, для удаления следующих 20 строк текста нажмите: + +\fB^K \ 20\fR\fB^Y\fR + +.SS Режим прямоугольных блоков +Нажмите \fB^T X\fR если хотите, чтобы по \fB^K B\fR и \fB^K K\fR отмечались +прямоугольные, а не построчные блоки. Этот режим полезен для перемещения, +копирования, удаления или сохранения колонок текста. Вы также можете +фильтровать колонки текста с помощью команды +\fB^K /\fR, если, к примеру, пожелаете отсортировать колонку. Также +можно использовать команду вставки файла \fB^K R\fR. + +Когда включен режим прямоугольных блоков, также может оказаться полезным +включить режим замещения +(\fB^T T\fR). В этом случае прямоугольники будут замещать существующий +текст. Также команда удаления блока +(\fB^K Y\fR) будет заполнять отмеченные прямоугольники пробелами и +табуляторами вместо того, чтобы удалять их. Режим замещения также может быть +полезен при выполнении команды фильтрации блока (\fB^K /\fR), поскольку исходная ширине +выбранной колонки останется неизменной. + +.SS Поиск тагов + +Если вы редактируете большую программу на языке C со многими исходными +файлами - можно использовать программу +\fBctags\fR для генерации файла \fBтагов\fR. Этот файл содержит список +имен, используемых в +программе и позиций в файлах, где эти имена определены. Команда +\fB^K ;\fR может использоваться для поиска имен (функций, +предопределенных констант, и т.п.), загрузки файла, в котором определено +данное имя, в текущее окно, и позиционирования курсора в точку определения. +\fB^K ;\fR запрашивает требуемое имя, используя слово, на котором находится +курсор, в качестве умолчания. +Поскольку \fB^K ;\fR загружает файл определения в текущее окно - возможно, +вам потребуется сначала разрезать окно с помощью команды +\fB^K O\fR, чтобы видеть одновременно и исходный файл, и файл определения. + +.SS Окна шеллов +Нажмите \fB^K '\fR для выполнения командного шелла в окне JOE. Когда курсор +находится в конце окна шелла (используйте для этого \fB^K V\fR), +все, что вы вводите - будет передаваться в шелл, а не в окно. Любой вывод +шелла или вызываемых программ, выполняемых в нем, будет добавляться в окно +(курсор будет перемещаться за этот вывод, если находился в конце окна +шелла). Эта команда полезна для записи шелл-команд, например, вывода +\fBmake\fR, результата \fBgrep\fR над +множеством файлов, или списка файлов из сеанса \fBFTP\fR. Кроме того, +печатаемые символы, клавиши +^C, Backspace, DEL, Enter и ^D передаются в шелл. Введите команду шелла +\fBexit\fR для прекращения записи вывода шелла. +Если в окне шелла вы нажмете \fB^C\fR, когда курсор находится не в конце +окна, шелл будет прерван. + +.SH Переменные \fBСреды\ + +Для корретной работы JOE необходимо правильно установить некоторые +переменные среды. Скорость (в бодах) связи между компьютером и вашим +терминалом следует правильно указывать для JOE, чтобы экран перерисовывался +плавно и можно было вводить вслепую для оптимизации отложенного вывода. Для +установки этого используйте команду +\fBstty nnn\fR. Значение следует указывать настолько точно, насколько это +возможно. Например, если вы подключаетесь через модем со скоростью 1200 бод +- вам следует использовать для \fBstty\fR именно это значение. Если вы +подключаетесь через модем со скоростью 14.4kбод, но терминальный сервер, к +которому вы подключены, связан с компьютером на скорости 9600 бод, вам +следует установить скорость 9600. Специальная скорость +38400 или \fBextb\fR используется для указания того, что вы используете +высокоскоростное подключение, такое как консоль или эмулятор терминала в +X-window. Если вы не можете использовать \fBstty\fR для установки реальной +скорости (возможно, потому, что скорость связи модема с компьютером отличается от +скорости в линии) - вы можете вместо этого записать числовое значение в +переменную среды \fBBAUD\fR (используйте \fBsetenv +BAUD 9600\fR для csh или \fBBAUD=9600; export BAUD\fR для sh). + +Переменная среды \fBTERM\fR должна указывать на тип используемого вами +терминала. Если размер (число строк/колонок) вашего терминала отличается от +указанного в его описании TERMCAP или TERMINFO - вы можете установить +правильное знение с помощью команды +\fBstty rows nn cols nn\fR, или определив переменные среды +\fBLINES\fR и \fBCOLUMNS\fR. + +Обычно JOE ожидает, что для управления потоком данных между компьютером и +вашим терминалом используется протокол +^S/^Q (т.е., если компьютер посылает данные слишком быстро для вашего +терминала - терминал посылает ^S для приостановки вывода и +^Q для его продолжения). Если для управления потоком используется +аппаратный протокол, или если ваш терминал достаточно быстр, чтобы всегда +во-время отрабатывать компьютерный вывод и вы желаете использовать +^S/^Q в качестве команд редактирования - вы можете установить переменную +среды \fBNOXON\fR, чтобы JOE пытался принимать ^S/^Q. +Если связь между компьютером и вашим терминалом не использует никакого +протокола управления потоком, а ваш терминал недостаточно быстр, чтобы +вовремя отрабатывать вывод компьютера - можете установить переменную среды +\fBDOPADDING\fR, чтобы \fBJOE\fR замедлял вывод путем вставки символов +заполнения в последовательности изменения экрана. + +.SH Имена файлов +Когда JOE ожидает от вас ввода имени файла - неважно, из командной ли +строки, или по запросу редактора, вы также можете вводить: + +.IP \fB!command +Читать или писать данные из или в команду шелла. Например, используйте +\fBjoe '!ls'\fR для редактирования всех файлов из текущей директории, или в +редакторе выполните \fB^K D !mail jhallen@world.std.com\fR для отправки мне +редактируемого файла. + +.IP \fB>>filename +Используйте это, чтобы JOE добавил редактируемый текст в конец файла +"filename." + +.IP \fBfilename,START,SIZE +Используйте это для доступа к определенной части файла или устройства. +\fBSTART\fR и +\fBSIZE\fR могут указываться в десятичном виде (напр.: 123), в восьмеричном +(напр.: 0777) или шестнадцатиричном (напр.: 0xFF). Например, используйте +\fBjoe /dev/fd0,508,2\fR для редактирования байтов 508 и 509 на первом +флоппи-диске в Linux. + +.IP \fB- +Используйте это для получения данных со стандартного ввода или для записи на +стандартный вывод. Например, вы можете использовать joe в конвейере команд: +\fBquota -v | joe - | mail root\fR, если хотите пожаловаться на ваши низкие +квоты. + + +.SH Файл \ joerc +Все опции, доступные по +\fB^T\fR, экран подсказки и комбинации клавиш команд редактора +определяются в инициализационном файле JOE. Если вы скопируете этот +файл (обычно расположенный в \fB@JOERC@/joerc\fR) в +\fB$HOME/.joerc\fR, то сможете настраивать все это по своему вкусу. +Синтаксис инициализационного файла достаточно понятен, и внутри него +содержатся подробные инструкции. + +.SH Благодарности +JOE был написан Joseph H. Allen. Если у вас имеются отчеты об ошибках или +вопросы - пишите ему по адресу jhallen@world.std.com. Larry Foard (entropy@world.std.com) +и Gary Gray (ggray@world.std.com) также помогли в создании JOE. +Перевод на русский язык - Юрий Калиниченко +