какая доля помеченных файлов обработано на текущий момент. Третья (bytes bar) пока- зывает долю выполненных работ (в процентах от суммарного объема помеченных файлов). Если отключена опция "Детали опе- раций" (см. "Настройки/Конфигурация"), две последних диаграм- мы не отображаются. В нижней части этого диалогового окна имеются две кнопки. Нажатие на кнопку <Пропустить> приведет к тому, что будет пропущена обработка текущего файла. Нажатие на кнопку <Прервать> прерывает выполнение заданной операции, все оставшие файлы будут пропущены. В процессе выполнения файловых операций Вы можете увидеть окна еще трех видов. Окно ошибок информирует об ошибке и предлагает три варианта продолжения. Обычно Вы выбираете либо вариант <Пропустить> для того, чтобы исключить из обработки файл, на котором споткнулась программа, либо <Прервать>, чтобы вообще отменить выполнение заданной операции. Третий вариант, <Повторить>, выбирается тогда, когда Вам удалось устранить причину сбоя (например, воспользовавшись другим терминалом). Окно подтверждения перезаписи появляется тогда, когда Вы пытаетесь перезаписать существующий файл. В этом окне отображаются время создания и размер файла-источника и файла-приемника (то есть перезаписываемого файла, который фактически будет уничтожен). Ниже выведены два вопроса. На первый вопрос ("Переписать этот файл?") предлагается три варианта ответа: - согласиться (кнопка <Да>); - отказаться, то есть пропустить перезапись текущего файла (кнопка <Нет>); - дописать содержимое файла-источника в конец файла-приемни- ка (кнопка <дописать в Конец>). Выбор одного из вариантов ответа на второй вопрос ("Перепи- сать все файлы?") позволяет принять одно решение по всем выбранным для обработки файлам (чтобы окно запроса не появля- лось каждый раз). Предлагается 4 варианта решения: - <Все> - перезаписались без дополнительных вопросов все выбранные файлы; - <Устаревшие> - перезапишутся (затрутся) только файлы, ко- торые созданы раньше файла-источника; - <ни Одного> - не перезаписывать файлы (но если не существу- ет файла-приемника, то копирование источника будет произведено); - <Различающиеся по длине>. Вы можете отказаться от выполнения операции, если нажмете клавишу <Прервать> в нижней части окна запроса. Выбор экранной кнопки производится клавишами стрелок или клавишей табуляции. Окно запроса на рекурсивное удаление появляется в том случае, когда Вы пытаетесь удалить непустой каталог. По кнопке <Да> каталог будет удален вместе со всеми файлами, <Нет> означает отказ от удаления каталога, <Все> надо выбирать, если Вы от- метили группу подкаталогов для удаления и уверены в своем выборе, <ни Одного> - чтобы пропустить все непустые каталоги из числа помеченных, <Прервать> означает отказ от выполнения операции удаления. Выбирайте <Да> или <Все> только в том случае, когда Вы действительно уверены, что хотите удалить каталог со всеми вложенными подкаталогами. Если Вы пометили для обработки группу файлов, то после выполнения операции будет снята отметка только с тех файлов, которые успешно обработаны. Пропущенные файлы останутся помеченными. [Mask Copy/Rename] Маски файлов для операций копирования/переименования При выполнении операций копирования и перемещения (или пере- именования) файлов Вы имеете возможность изменить имена копируемых или перемещаемых файлов. Для этого Вы должны задать маску для имен файлов-источников и маску для имен файлов, которые будут созданы (файлы-приемники). Обычно эта вторая маска представляет собой несколько символов замены (wildcards) в конце строки, определяющей место назначение создаваемых файлов. Все файлы, удовлетворяющие маске источника, будут переимено- ваны (скопированы или перемещены с новыми именами) в соответ- ствии с маской файла-приемника. Если имеются помеченные файлы, то копируются (перемещаются) только помеченные файлы, удов- летворяющие заданной маске для файлов-источников. Есть еще несколько опций, которые влияют на выполнение опе- раций копирования/перемещения файлов, и которые устанавлива- ются в том же окне запроса, где задаются маски имен файлов: "Разименовывать ссылки" (Follow links) определяет, будут ли при копировании жестких или символических ссылок в каталоге- приемнике (и рекурсивно в подкаталогах) создаваться такие-же ссылки, или будут копироваться файлы (и подкаталоги), на ко- торые эти ссылки указывают. "Внутрь каталога, если есть" (Dive into subdirs) определяет, что делать, если в каталоге-приемнике уже существует подка- талог, имя которого совпадает с именем файла (каталога), ко- торый копируется (источника). По умолчанию (опция отключена) содержимое каталога-источника копируется в каталог-приемник. Если опция включена, то в каталоге приемнике будет создан новый подкаталог с тем же именем, в который и будет осущест- вляться копирование. Лучше показать это на примере: Пусть Вы хотите скопировать содержимое каталога foo в ката- лог /bla/foo, который уже существует. Обычно (опция отклю- чена) mc будет просто копировать все файлы из foo в /bla/foo. Если опцию включить, копирование файлов будет производиться в /bla/foo/foo. "Сохранять атрибуты" (Preserve attributes) определяет, будут ли при копировании/перемещении сохранены атрибуты исходного файла: права доступа, временные метки и, если Вы root, UID и GID исходного файла. Если опция отключена, атрибуты будут установлены в соответствии с текущим значением umask. Опция "Образцы в стиле shell" включена. Когда опция "Образцы в стиле shell" включена, Вы можете использовать символы замены (wildcards) '*' и '?' в маске источника. Они обрабатываются аналогично тому, как это дела- ется в shell. В маске приемника разрешается использовать только '*' и '\<цифра>'. Первый символ '*' в маске приемника соответствует первой группе символов замены в маске источни- ка, второй символ '*' соответствует второй группе и т.д. Аналогично, символ замены '\1' соответствует первой группе символов замены в маске источника, символ '\2' - второй группе и т.д. Символ '\0' соответствует целому имени файла- источника. Два примера: Если маска источника "*.tar.gz", а приемник - "/bla/*.tgz" и имя копируемого файла - "foo.tar.gz", копия будет называться "foo.tgz" и будет находиться в каталоге "/bla". Предположим Вы хотите поменять местами имя и расширение файла, так чтобы "file.c" стал файлом "c.file". Маска источника для этого должна иметь вид "*.*", а маска приемника - "\2.\1". Опция "Образцы в стиле shell" выключена. Когда опция "Образцы в стиле shell" (Use shell patterns) выключена, MC не осуществляет автоматической группировки. Для указания групп символов в маске источника, которые будут соответствовать символам замены в маске приемника, Вы должны в этом случае использовать скобки '\(...\)'. Этот способ более гибкий, но требует больше усилий при вводе. Два примера: Если маска источника имеет вид "^\(.*\)\.tar\.gz$", копиро- вание производится в "/bla/*.tgz" и копируется файл "foo.tar.gz", то результатом будет "/bla/foo.tgz". Предположим, что Вы хотите поменять местами имя файла и его расширение, так чтобы имена вида "file.c" приняли вид "c.file". Маска источника для этого - "^\(.*\)\.\(.*\)$", а маска приемника - "\2.\1". "Преобразование регистра" Вы можете также преобразовать регистр символов в именах фай- лов. Если Вы используете '\u' или '\l' в маске приемника, то следующий символ имени будет образован в верхнем (заглав- ные символы) или нижнем (строчные) регистре соответственно. Если использовать в маске приемника '\U' или '\L', то к соответствующему регистру будут преобразованы все последующие символы, вплоть до следующего вхождения '\E' или '\U', появ- ления символа '\L' или конца имени файла. Применение '\u' и '\l' обеспечивает более широкие возможнос- ти, чем '\U' and '\L'. Например, если маска источника есть '*' (опция "Образцы в стиле shell" включена) или '^\(.*\)$' (опция "Образцы в стиле shell" выключена), а маска приемника есть '\L\u*', имена файлов будут преобразованы таким образом, что первые буквы имени будут заглавными, а все остальные - строчными. Символ '\' в масках используется для отмены специальной интерпретации отдельных символов. Например, '\\' означает просто backslash и '\*' означает просто звездочку (asterisk). [Internal File Viewer] Встроенная программа просмотра файлов Встроенная программа просмотра файлов имеет два режима просмотра: режим ASCII и шестнадцатиричный (hex). Для пере- ключения режимов используется клавиша F4. Если у Вас уста- новлена программа gzip проекта GNU, она будет использована для автоматического просмотра сжатых файлов (содержимое сжатого файла представляется как подкаталог). Встроенная программа просмотра всегда пытается использовать для отображения информации лучший из методов, предоставляе- мых Вашей системой для данного типа файла. Некоторые после- довательности символов интерпретируются для задания таких атрибутов, как жирный шрифт и подчеркивание, обеспечивая более наглядное представление информации. В шестнадцатиричном режиме функция поиска позволяет задать строку поиска как в обычном текстовом виде (заключенном в кавычки), так и в виде шестнадцатиричных констант. Можно даже одновременно использовать в шаблоне поиска как ту, так и другую форму представления, например: "String" 0xFE 0xBB "more text". Текст между кавычками и константами игнорируется. Some internal details about the viewer: On systems that provide the mmap(2) system call, the program maps the file instead of loading it; if the system does not provide the mmap(2) system call or the file matches an action that requires a filter, then the viewer will use it's growing buffers, thus loading only those parts of the file that you actually access (this includes compressed files). Ниже приводится перечень всех клавиш и их комбинаций, с которыми ассоциированы некие действия встроенной программы просмотра. F1 . Вызывает просмотр встроенной гипертекстовой подсказки. F2 . Переключает режим переноса строки. F4 . Переключает между ASCII и шестнадцатиричным режимами. F5 . Переход к строке по номеру. Будет запрошен номер строки, к просмотру которой Вы хотите перейти. F6 , / . Поиск по регулярному выражению. ? . Обратный поиск по регулярному выражению. F7 . Вызов диалогового окна для задания шаблона поиска. C-s . Если шаблон поиска еще не задан, вызывается диалоговое окно для его задания, иначе повторяется поиск (дальше по тексту) в соответствии с ранее определенным шаблоном. C-r . То же, что и C-s , но поиск производится в обратном направлении. n . Найти следующее совпадение. F8 . Переключение между режимами Raw/Parsed: файл отобража- ется либо в том виде, как он записан на диске, либо пропущенным через фильтр, который задан для этого типа файлов в mc.ext. Текущий режим отображения всегда обрат- ный по отношению к тому, который указан на эранной кнопке F8, поскольку на кнопке указывается режим, к которому осуществляется переход по данной кнопке. F9 . Переключение между режимами отображения текста в форма- тированном и неформатированном виде: в режиме отображения форматированного текста некоторые последовательности символов отображаются другим цветом для выделения жирного и подчеркнутого шрифта. Как и в предыдущем случае, на кнопке указан режим, обратный по отношению к текущему. F10 , Esc . Выйти из встроенной программы просмотра. PageDown , space , C-v . Переместиться на страницу вперед. PageUp , M-v , backspace . Переместиться на страницу назад. стрелка вниз . Переместиться на одну строку вперед. стрелка вверх . Переместиться на одну строку назад. C-l . Обновить изображение на экране. ! . Запустить новый экземпляр оболочки в текущем каталоге (временный выход в shell, возврат в программу просмотра по C-d ). "[n] m " Установить метку с номером n (кавычки не вводятся). "[n] r " Переместиться к метке с номером n. C-f . Перейти к просмотру следующего файла текущего каталога. C-b . Перейти к просмотру предыдущего файла в текущем каталоге. M-r . Переключение режима отображения линейки (вверху/внизу/отключена). Можно настроить режимы отображения файлов встроенной програм- мой просмотра, воспользовавшись файлом расширений.Extension File Edit [Internal File Editor] Встроенный редактор Встроенный редактор обеспечивает выполнение большинства функ- ций редактирования, присущих полноэкранным редакторам текста. Он вызывается нажатием клавиши F4 при условии, что в иници- ализационном файле установлена в 1 опция ^Tuse_internal_edit . Размер редактируемого файла не может превышать 16 Мегабайт. С помощью этого редактора можно редактировать двоичные файлы без потери данных. Поддерживаются следующие возможности: копирование, перемеще- ние, удаление, вырезание и вставка блоков текста; отмена предыдущих операций (^T"key for key undo" ); выпадающие меню; вставка файлов; макро-определения; поиск и замена по регуляр- ным выражениям (а также собственный вариант операций поиска и замены, основанный на функциях scanf-printf); выделение текс- та по комбинации клавиш shift-стрелки в стиле MSW-MAC (только для linux-консоли); переключение между режимами вставки-заме- ны символа; а также операция обработки блоков текста команда- ми оболочки (an option to pipe text blocks through shell commands like indent). Редактор очень прост и практически не требует обучения. Для того, чтобы узнать, какие клавиши вызывают выполнение опре- деленных действий, достаточно просмотреть выпадающие меню, которые вызываются нажатием клавиши F9 в окне редактора. Не перечисленные в меню комбинации клавиш: Shift-<клавиши стрелок> выделение блока текста. Ctrl-Ins копирует блок в файл cooledit.clip. Shift-Ins производит вставку последнего скопированного в cooledit.clip блока в позицию курсора. Shift-Del удаляет выделенный блок текста, запоминая его в файле cooledit.clip. По клавише Enter вставляются символы конца строки и перевода каретки, причем на следующей строке автоматически устанавли- вается отступ. Работает выделение текста с помощью мыши, причем если удерживать клавишу Shift, то управление мышью осуществляется терминальным драйвером мыши. Для того, чтобы определить макрос, нажмите Ctrl-R , после чего введите строки команд, которые должны быть выполнены. После завершения ввода команд снова нажмите Ctrl-R и свя- жите макрос с какой-нибудь клавишей или комбинацией клавиш, нажав эту клавишу (комбинацию). Макрос будет вызываться нажатием Ctrl-A и назначенной для него клавиши. Макрос можно также вызвать нажатием любой из клавиш Meta (Alt), Ctrl, или Esc и назначенной макросу клавиши, при условии, что данная комбинация не используется для вызова какой-либо другой функции. Макро-команды после определения записываются в файл cedit/cooledit.macros в Вашем домашнем каталоге. Вы можете удалить макрос удалением соответствующей строки в этом файле. По клавише F19 (ее нет на обычной клавиатуре IBM PC, так что придется пользоваться соответствующим пунктом меню, вызы- ваемым по клавише F9, или переназначить клавишу) будет осу- ществляться форматирование выделенного блока кода на языке C. Однако, чтобы эта функция работала, необходимо вначале создать исполняемый файл с именем cedit/edit.indent.rc в Вашем домашнем каталоге, содержащий следующий текст: #!/bin/sh /usr/bin/indent -kr -pcs ~/cedit/cooledit.block >& /dev/null cat /dev/null > ~/cedit/cooledit.error Вы можете использовать функции поиска и замены scanf для поис- ка и замены в соответствии с шаблонами формата языка C. Внача- ле посмотрите man-страницы sscanf и sprintf , чтобы узнать, что такое шаблоны формата и как они работают. Приведем пример: предположим, Вы хотите заменить все вхождения блоков текста, состоящих из открывающей скобки, трех разделенных запятыми чисел, и закрывающей скобки, на блок, состоящий из слова ^Tapples , третьего числа исходного блока, слова ^Toranges и потом второго числа из исходного блока. Тогда в диалоговом окне, которое появится при вызове команды замены (F4), надо задать следующие шаблоны: Enter search string (%d,%d,%d) Enter replace string apples %d oranges %d Enter replacement argument order 3,2 Последняя из этих строк говорит, что третье и второе число должны быть подставлены на места первого и второго аргумен- тов. Рекомендуется все же при осуществлении замены пользоваться опцией "спрашивать подтверждение" ("Prompt on replace"), потому что программа считает совпадениями все случаи, когда число аргументов совпадает с заданным, хотя это не всегда означает полное совпадение. Scanf также не обращает внимания на количество символов пробела. Встроенный редактор обрабатывает символы из второй половины кодовой таблицы (160+). Но когда редактируете бинарные файлы, лучше установить опцию "Биты символов" (Display bits) из меню "Настройки" в положение "7 бит", чтобы сохранить формат файла (to keep the spacing clean). Описать все функции встроенного редактора в данной подсказке невозможно. Запомните только, что все основные операции можно выполнить через пункты меню, которое вызывается нажатием кла- виши F9 в окне редактирования. Кроме того, можно прочитать man-страницу по команде man mcedit или info mcedit . [Chmod] Права доступа (Chmod) Диалоговое окно "Права доступа" предоставляет удобный интер- фейс к команде chmod - команде изменения атрибутов доступа к файлам и каталогам. Доступ к этому окну можно получить по "горячей" комбинации клавиш "C-x c ". Диалоговое окно "Права доступа" состоит из двух частей - ^TPermissions и ^TФайл . В части "Файл" отображается имя файла или каталога и права доступа на него в восьмеричной форме, а также указаны владе- лец и группа файла. В части "Permissions" перечислены атрибуты прав доступа к текущему файлу. В квадратных скобках возле соответствующего атрибута крестиком помечены те атрибуты, которые установлены для данного файла. Изменять установки атрибутов можно двумя способами. При первом способе непосредственно изменяется значение атри- бута в квадратных скобках возле его названия. Для изменения значений атрибутов надо переместить подсветку на название соответствующего атрибута и нажать клавишу ^Tпробела . Для перемещения подсветки по названиям атрибутов можно использо- вать ^Tклавиши-стрелки или клавишу ^TTab . Названия измененяемых атрибутов помечаются звездочкой и предполагаемое значение всех атрибутов в восьмеричном представлении прав доступа сразу же отображаются в части "Файл" окна. Для того, чтобы выбранные Вами значения атрибутов прав досту- па вступили в силу, надо нажать клавишу Enter или экранную кнопку [Set] (с помощью мышки). Для отказа от изменения атри- бутов нужно выбрать кнопку [Прервать] . Вместо выбора экранных кнопок можно воспользоваться "горячими" клавишами (выделенные буквы в названии атрибута). Изменять права доступа к отдельному файлу Вы можете только первым способом (описанным выше). Когда Вы хотите изменить атрибуты прав доступа сразу группы файлов или каталогов, Вы тоже может воспользоваться этим способом, только вместо экранной кнопки [Set] или клавиши <Enter> должны выбрать кнопку [Set all] . Второй способ заключается в том, что Вы сначала помечаете те атрибуты, которые хотите изменить, с помощью клавиш <Ins> или <T>. Обратите внимание, что значение в квадратных скобках при этом не изменяется. После этого Вы выбираете один из следующих вариантов действий (то есть одну из экранных кнопок): [Marked all] отмеченные атрибуты (и только они) будут уста- новлены в те значения, которые указаны в квадратных скоб- ках возле названия атрибута, причем для всех выбранных (помеченных) файлов; если атрибут не был отмечен, его значение для выбранных файлов не изменяется. [Set marked] для всех выбранных файлов бит, соответствующий данному атрибуту, будет установлен в 1. [Clean marked] для всех выбранных файлов бит, соответствующий данному атрибуту, будет установлен в 0. [Set] будут установлены атрибуты только для одного файла (первого из помеченных), причем установка производится так же, как по клавише [Marked all]. [Cancel] отказаться от выполнения команды Chmod. [Chown] Владелец/группа (Chown) Пункт меню "Владелец/группа" используется для того, чтобы из- менить владельца файла или группу, которая имеет какие-то права на файл. "Горячая" клавиша для вызова этого пункта меню - C-x o . [Advanced Chown] Расширенная команда Chown Выбрав пункт меню "Расширенная команда Chown", Вы увидите окно, совмещающее в себе окна, появляющиеся при выборе пунктов Права доступа (Chmod)Chmod и Владелец/группа (Chown)Chown. В этом окне Вы можете как изменить права доступа к файлу, так и поменять владельцев файла. [Quick cd] Быстрая смена каталога (Quick cd) Эта команда полезна тогда, когда Вы знаете полный путь к каталогу, который хотите сделать текущим, и желаете исполь- зовать встроенную команду  cdThe cd internal command. По этой команде вызывается диалоговое окно, в строке ввода которого Вы должны ввести тот путь, который Вы ввели бы в командной строке оболочки при выполнении команды cd . После этого надо нажать клавишу <Enter>. [Command Menu] Меню "Команды" При обращении к пункту меню Дерево каталоговDirectory Tree выводится окно, отображающее структуру каталогов файловой системы. Команда Поиск файлаFind File позволяет Вам найти на диске файл с заданным именем. "Горячие" клавиши - M-? . Команда "Переставить панели" ("Swap panels") меняет местами содержимое правой и левой панелей. "Горячие" клавиши - C-u . По команде "Отключить панели" ("Panels on/off") показывается вывод последней из выполнявшихся команд shell. Эта команда работает только через xterm и на консоли Linux и SCO. "Горячие" клавиши - C-o . По команде "Сравнить каталоги" ("Compare directories", "горячие" клавиши - C-x d ) сравнивается содержимое каталогов, отображаемых на левой и правой панелях. После сравнения Вы можете воспользоваться командой "Копировать" (F5) для того, чтобы сделать содержимое каталогов одинаковым. Существует три метода сравнения. При быстром методе сравни- ваются только размер и дата создания файлов с одинаковыми именами. При побайтном методе сравнивается содержимое файлов (побайтно). Этот метод недоступен, если машина не поддержи- вает системный вызов mmap(2). При сравнении по размеру сравниваются только размеры соответствующих файлов, а дата создания не проверяется. Пункт меню "История команд" выводит окно со списком ранее вы- полнявшихся команд. Подсвеченную строку из истории можно ско- пировать в командную строку оболочки (перемещение подсветки - стрелками вверх/вниз, копирование - по клавише Enter). Доступ к истории команд можно получить также по комбинациям клавиш M-p или M-n , однако в этом случае Вы не видите окна с перечнем команд. Вместо этого в командную строку выводится одна команда из списка и по комбинации M-p происходит смена этой команды на предыдущую, а по M-n - на следующую команду из истории команд. Пункт меню "Справочник каталогов"Hotlist (C-\ ) позволяет создать список каталогов, которые часто используются, и обеспечить быстрый переход к нужному каталогу из этого списка. Пункт меню "Критерий панелизации"External panelize позволяет Вам выполнить внешнюю программу, сделав ее вывод содержимым текущей панели (характерный пример - панелизация вывода команды find). После выбора пункта меню "Файл расширений"Extension File Edit Вы можете связать с определенным расширением файла (окончанием имени после последней точки) программу, которая будет запускаться для обработки (просмотра, редактирования или выполнения) файла с таким расширением. Запуск выбранной программы будет осуществляться после установки подсветки на имя файла и нажатия клавиши <Enter>. Пункт меню "Файл меню"Menu File Edit используется для редактирования пользовательского меню (которое появляется после нажатия клавиши F2). [Directory Tree] Дерево каталогов (Directory Tree) После выбора пункта меню "Дерево каталогов" появляется окно, в котором отображена иерерхическая структура каталогов. Дерево каталогов может быть вызвано двумя способами: через пункт "Дерево каталогов" из меню "Команды" и пункт "Дерево" из меню правой или левой панелей. Чтобы избавиться от долгих задержек во время создания дерева каталогов, Midnight Commander создает дерево путем просмотра только небольшого подмножества всех каталогов. Если каталог, который Вам нужен, не отображен, перейдите в его родительский каталог и нажмите C-r (или F2 ). Для управления просмотром дерева каталогов могут использоваться следующие комбинации клавиш: Работают все клавиши управления перемещениемGeneral Movement Keys. Enter. В окне просмотра дерева каталогов нажатие этой клавиши вызывает выход из режима просмотра и отображение списка файлов выбранного каталога в активной панели. При отображении дерева каталогов в одной из панелей при нажатии клавиши Enter соответствующий каталог отображается во второй панели, а на текущей панели остается дерево. C-r, F2 (Rescan). Перечитать содержимое каталога. Используется в тех случаях, когда дерево каталогов не соответствует реальной структуре: некоторые подкаталоги не показаны или показаны более не существующие. F3 (Forget). Удалить текущий каталог из дерева. Эта команда используется для удаления ошибочно отображаемых ветвей дерева. Если Вам необходимо вернуть подкаталог в дерево, перейдите в его родительский каталог и нажмите клавишу F2. F4 (Static/Dynamic). Переключение между статическим (применяемым по умолчанию) и динамическим режимами перемещения по дереву. В статическом режиме перемещения для выбора каталога (т.е. перемещения подсветки на имя другого каталога) используются только стрелки вверх/вниз. Показываются все известные программе на данный момент подкаталоги. В динамическом режиме стрелки вверх/вниз используются для перехода на соседний каталог того же уровня. Для прехода в родительский каталог используется клавиша "стрелка влево", а по стрелке вправо происходит переход к потомкам текущего каталога, то есть на один уровень ниже. При этом отображаются только вышележащие каталоги (включая родительский и выше), соседние каталоги того же уровня и непосредственные потомки. Вид дерева каталогов динамически изменяюется после каждого перемещения по дереву. F5 (Copy). Копировать подкаталог (появляется строка ввода, в которой надо указать, куда копировать). F6 (RenMov). Переместить подкаталог. F7 (Mkdir). Создать подкаталог в текущем (подсвеченном) каталоге. F8 (Delete). Удалить посвеченный каталог из файловой системы. C-s, M-s. Найти следующий каталог, соответствующий заданному шаблону поиска. Если такого каталога не существует, происходит просто смещение подсветки на одну строку вниз. C-h, Backspace. Удаляет послений символ в строке (шаблоне) поиска. Любой другой символ. Этот символ добавляется в шаблон поиска и производится перемещение на имя следующего каталога, удовлетворяющее шаблону. В режиме просмотра дерева каталогов вначале необходимо активизировать режим поиска клавишами C-s . Шаблон поиска будет отображаться в строке мини-статуса. Следующие действия возможны только в окне просмотра дерева каталогов и не поддерживаются при просмотре дерева в одной из панелей F1 (Help). Вызов подсказки с отображением настоящего раздела помощи. Esc, F10. Выход из окна дерева каталогов. Смены текущего каталога не происходит. В окне просмотра дерева каталогов поддерживается мышка. Двойной щелчок аналогичен нажатию клавиши Enter. Смотри также секцию о поддержке мышиMouse Support. [Find File] Поиск файлов (Find File) После выбора пункта меню "Поиск файла" ("Find File") вначале запрашивается имя искомого файла и имя каталога, с которого необходимо начинать поиск. Нажав кнопку <Дерево> (<Tree>), Вы можете выбрать начальный каталог поиска из дерева каталоговDirectory Tree. В поле "Содержание" (contents) можно задать регулярное выра- жение по правилам команды egrep(1). Это значит, что перед символами, имеющими специальное значение для egrep, необхо- димо вставить символ "\", например, если Вам нужно найти строку "strcmp (", Вы должны указать шаблон поиска в виде "strcmp \(" (без двойных кавычек). Для того, чтобы начать поиск, нажмите экранную кнопку <Дальше> (<Ok>). Во время поиска его можно приостановить кнопкой <Остановить> (<Stop>) и продолжить по кнопке <Продолжить> (<Start>). Список найденных файлов можно просматривать, перемещаясь с помощью клавиш "стрелка вверх" и "стрелка вниз". Кнопка <Перейти> (<Chdir>) используется для перехода в каталог, в котором находится подсвеченный файл. Кнопка <Повтор> (<Again>) служит для задания параметров нового поиска. Кнопка <Выход> (<Quit>) служит для выхода из режима поиска. Нажатие на кнопку <Панелизация> (<Panelize>) приведет к тому, что результаты поиска будут отображены на текущую активную панель, так что Вы можете производить с выбранными файлами еще какие-то действия (просматривать, копировать, перемещать, удалять и так далее). После вывода на панель можно нажать C-r для возврата к обычному списку файлов. Можно задать список каталогов, которые команда "Поиск файла" будет пропускать в ходе поиска (например, Вы знаете, что искомого файла нет на CDROM или не хотите искать в каталогах, подключенных через NFS по очень медленному каналу). Каталоги, которые надо пропустить, должны быть указаны в переменной find_ignore_dirs в секции Misc Вашего файла ~/.mc/ini . Имена каталогов разделяются двоеточиями, следующим образом: [Misc] find_ignore_dirs=/cdrom:/nfs/wuarchive:/afs Вы можете использовать перенаправление вывода на панель (см. Критерий панелизацииExternal panelize) для выполнения некоторых усложненных последовательностей действий, в то время как "Поиск файла" позволяет выполнять только простые запросы. [External panelize] Критерий панелизации (External panelize) Пункт меню "Критерий панелизации" (который правильнее было бы назвать "Перенаправление вывода на панель") позволяет Вам выполнить внешнюю программу и отобразить вывод этой программы на текущей активной панели. Например, если Вы хотите выполнить какое-то действие над всеми символическими ссылками текущего каталога, Вы можете использовать пункт "Критерий панелизации" для запуска следующей команды: find . -type l -print После выполнения этой команды в текущей панели будет отображено не содержимое соответствующего каталога, а только все символические ссылки, в нем расположенные. Если Вы хотите вывести на панель все файлы, которые были скачаны с Вашего FTP-сайта, Вы можете использовать следу- ющую команду для извлечения нужных имен из файла протокола: awk '$9 ~! /incoming/ { print $9 }' < /usr/adm/xferlog Если Вы захотите, то можете сохранить часто используемые команды панелизации под отдельными информативными именами, чтобы иметь возможность их быстро вызвать по этим именам. Для этого нужно набрать команду в строке ввода и нажать кнопку <Добавить>. После этого Вам потребуется ввести имя, по которому Вы будете вызывать команду. В следующий раз Вам достаточно будет выбрать нужное имя из списка, а не вводить всю команду заново. [Hotlist] Справочник каталогов (Hotlist) Пункт меню "Справочник каталогов" служит для вывода списка меток (условных имен), присвоенных наиболее часто используемым каталогам. Этот список можно использовать для быстрого пере- хода в нужный каталог. Пользуясь диалоговым окном справочника каталогов, Вы можете добавить новую метку в список или удалить ранее созданную пару метка/каталог. Для добавления метки можно также использовать комбинацию клавиш (C-x h ), по которой текущий каталог добавляется в справочник каталогов. Программа выдаст запрос на ввод метки для этого каталога. Использование этого пункта меню обеспечивает более быстрый переход к часто используемым каталогам. Другим способом уско- рения процедуры переключения на часто используемые каталоги является задание переменной CDPATH (смотри описание встроен- ной команды cd The cd internal command). [Background jobs] Фоновые задания Этот пункт меню позволяет Вам управлять фоновыми заданиями, запущеными из Midnight Commander (такими заданиями могут быть только операции копирования и перемещения файлов). Используя этот пункт меню или "горячие" клавиши C-x j , Вы можете остановить, возобновить или снять любое из фоновых заданий. [Extension File Edit] Файл расширений Этот пункт меню "Команда" служит для вызова редактора и загрузки в него на редактирование файла ~/.mc/ext . Этот файл имеет следующий формат (формат был изменен в версии 3.0): Все строки, начинающиеся с # или пустые строки игнорируются. Строки, начинающиеся с первой колонки (будем говорить, что с таких строк начинаются секции файла расширений), должны иметь следующий формат: ^Tkeyword/descNL, т.е. все, что стоит после ^Tkeyword/ и до конца строки, интерпретируется как ^Tdesc . В качестве keyword может стоять одно из следующих слов: ^Tshell (если desc начинается с точки (мета-символы не допуска- ются), то desc - это расширение имени файла, т.е. шаблону соответствуют все файлы, оканчивающиеся на desc. Пример: .tar будет означать *.tar. Если desc не начинает- ся с точки, то desc трактуется как полное имя файла. ^Tregex (desc - регулярное выражение) Обратите внимание на то, что используется библиотека GNU regex, в силу чего "\|" соответствует просто символу "|", а "|" имеет специальное значение (логическое ИЛИ). Аналогично, вместо скобок "(" и ")" надо использовать "\(" и "\)". ^Ttype (в этом случае выбираются такие файлы, для которых `file %f` соответствует регулярному выражению desc (часть filename: из `file %f` удалена)) ^Tdirectory (любой каталог, имя которого соответствует регу- лярному выражению desc) ^Tinclude (matches an include directive) ^Tdefault (подходит любой файл, независимо от того, какое значение принимает desc) Все строки в секции, кроме первой, должны начинаться с пробела или символа табуляции и иметь следующий формат: ^Tkeyword=commandNL (без пробелов возле "="), где ^Tkeyword должно быть : ^TOpen (строка задает действия, выполняемые в том случае, когда пользователь нажимает Enter или дважды щелкает мышкой по имени файла), ^TView (F3), ^TEdit (F4), ^TDrop (пользователь drops some files on it) ^TIcon name is name of the corresponding icon (XPM). If it has no path, the default path for mc icons /usr/lib/mc/icons is assumed. ^TTitle is the default icon title for objects. %p is expanded into the name of that file and %d/%p to a name with full path. Default title (if none is specified) is %p ^TInclude is the keyword used to add any further entries from an include/ section ^Tлюбое имя, определяемое пользователем (those will be listed in the extension dependent pop-up menu). ^Tcommand - это любая однострочная команда оболочки, в кото- рой допускаются следующие макро-подстановки.Macro Substitution %% -> символ % %p -> имя текущего файла (без пути, путем является имя текущего каталога) %f -> имя текущего файла. В отличие от %p, если файл распо- ложен не в локальной, а в виртуальной файловой сис- теме, то есть в одной из ФС tarfs, mcfs или ftpfs, то файл будет временно скопирован в локальный каталог и %f примет значение, равное полному пути к этому ло- кальному временному файлу. Если Вы хотите получить не локальную копию, а обра- титься к файлу в виртуальной файловой системе (напри- мер /#ftp:ftp.cvut.cz/pub/hungry/xword), то исполь- зуйте %d/%p вместо %f. %d -> имя текущего каталога (pwd, без слэша на конце) %s -> "выбранные файлы", т.е. список помеченных файлов (если такие имеются), разделенных пробелами, или имя текуще- го файла (если нет помеченных) %t -> список помеченных фйлов %u -> список помеченных фйлов (отметка с них будет снята после выполнения команды) (Если в шаблонах любая из этих букв задана в верхнем регистре, обрабатываются файлы из пассивной панели. Но Вы не должны использовать заглавные буквы в файле расширений) %cd -> оставшаяся часть строки будет не командой, а путем к каталогу, в который будет осуществлен переход с по- мощью встроенной в MC команды cd (обычная команда cd не сработала бы, поскольку для ее выполнения порож- дался бы новый процесс (child process), а %cd обраба- тывает даже имена каталогов в виртуальных файловых системах %view -> команда, которую Вы наберете, будет соединена кон- вейером (will be piped into) со встроенной программой просмотра (mc's internal file viewer). Если Вы введете только %view без команды, встроенная программа просмотра загрузит файл %f (т.е. конвейера не будет, тоа что это не то же, что %view cat %f) Сразу вслед за %view можно поставить {} со списком, содержащим любые слова из следующего перечня, разде- ленные запятыми: ascii (Ascii mode), hex (Hex mode), nroff (c\bc color highlighting) unformatted (not highlighting nroff sequences) %var -> используется примерно так: %var{ENV-VAR:default}. Этот макрос будет заменяться на значение переменной окружения ENV-VAR, если она установлена, в противном случае будет использовано значение default. Это подобно конструкции ${VAR-def} в оболочке Борна. %q -> будет заменено списком файлов (с полными именами путей к ним), которые пользователь бросил на него (user dropped on it). Применяется только в команде Drop. Секции файла расширений просматриваются сверху вниз (порядок важен). Если какое-либо действие не задано (отсутствует) в секции, то поиск продолжается, как если бы эта секция не соответствовала выбранному файлу (т.е. если файл соответствует первой и второй секции, но действие View не определено в первой секции, то нажатие F3 будет вызывать ту реакцию про- граммы, которая определена строкой View из второй секции файла. Секция default должна поэтому определять реакцию на все случаи. Если у Вас есть предложения по заданию каких-то действий программы для определенных типов файлов, которые будут полезны для других пользователей, присылайте Ващи предло- жения по email на адрес mc-devel@roxanne.nuclecu.unam.mx. [Menu File Edit] Редактирование файлов меню Файлы меню содержат списки команд для выполнения часто повто- ряемых пользователем операций. Эти меню создаются и поддержи- ваются самими пользователями. Могут быть созданы три файла меню: в текущем каталоге, в домашнем каталоге пользователя и общесистемный. Когда Вы нажимаете клавишу F1 для вызова меню, Midnight Commander вначале ищет файл .mc.menu в текущем каталоге и отображает соответствующее меню (если находит и если владельцем этого файла является данный пользователь или root и файл is not world-writable). Если такого файла не найдено, таким же образом ищется файл ~/.mc/menu и, в последнюю очередь, mc использует общесистемное меню /usr/lib/mc/mc.menu . Формат всех трех файлов меню одинаков и очень прост. Строки комментариев начинаются с '#'. Дополнительные комментарии должны начинаться с '#', пробела или символа табуляции. Стро- ки, начинающиеся с любого символа, отличного от пробела и символа табуляции, интерпретируются как названия пунктов меню, причем если первый символ является буквой или цифрой, то соответствующая клавиша будет служить "горячей" клавишей для вызова этого пункта меню. Строки, начинающиеся с пробела или символа табуляции, интерпретируются как команды, которые должны выполняться при вызове соответствующего пункта меню. Эти строки должны следовать за строкой названия и их может быть несколько. Когда пользователь выбирает какой-то пункт меню, соответст- вующие командные строки копируются во временный файл во временном каталоге (обычно /usr/tmp) и затем этот файл запускается на выполнение. Это позволяет пользователю вставлять в команды меню любые конструкции, допустимые в командном языке оболочки (shell). Можно также использовать макро-подстановки, которые производятся перед выполнением кода меню (подробнее смотри в секции Макро-подстановкиMacro Substitution). Вот пример файла mc.menu: A Вывести выбранный файл командой od od -c %f B Отредактировать протокол ошибок и переслать root-у vi /tmp/mail.$$ mail -s "Midnight Commander bug" root < /tmp/mail.$$ M Прочитать почту emacs -f rmail N Просмотреть новости Usenet emacs -f gnus H Вызов гипертекстовой помощи info J Скопировать текущий каталог в другую панель tar cf - . | (cd %D && tar xvpf -) K Создать архив текущего подкаталога echo -n "Введите имя архива: " read tar ln -s %d `dirname %d`/$tar cd .. tar cvhf ${tar}.tar $tar = f *.tar.gz | f *.tgz & t n X Извлечь содержимое сжатого tar-архива tar xzvf %f Условия выполнения (Default Conditions) Каждому пункту меню может предшествовать условие. Строка, задающая условие, должна содержать символ '=' в первой колонке. Команды, задаваемые этим пунктом меню, б