6

6.4. Использование поля командной строки

 

            Поле командной строки (см. рис. 6.1) является тем "окном" в оболочке, через которое пользователю практически в полном объеме доступен пользовательский интерфейс DOS.

            В этом поле постоянно присутствует приглашение DOS, за которым находится курсор. Вид приглашения задается командой Path prompt в подменю Options.

            В поле командной строки пользователь может ввести командную строку DOS (запрос на выполнение DOS-команды или программы). В отличие от интерфейса DOS оболочка до нажатия клавиши Enter предоставляет удобные средства по редактированию командной строки. Для этого можно использовать следующие клавиши и их комбинации (в скобках указаны синонимы):

 

Ctrl-S                         - переместить курсор на один символ влево;

Ctrl-D                         - переместить курсор на один символ вправо;

Ctrl-A (Ctrl-)          - переместить курсор на одно слово влево;

Ctrl-F (Ctrl-)          - переместить курсор на одно слово вправо;

Ctrl-Home                 - переместить курсор в начало командной строки;

Ctrl-End                    - переместить курсор в конец командной строки;

BS                              - удалить один символ слева от курсора;

Ctrl-W (Ctrl-BS)        - удалить одно слово слева от курсора;

Del (Ctrl-G)               - удалить символ над курсором;

Ctrl-T                          - удалить одно слово справа от курсора;

Esc (Ctrl-Y)               - удалить напечатанную часть командной строки целиком.

 

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

            Клавиши и ← для перемещения курсора в поле командной строки доступны не всегда, так как они связаны с маркером. Однако если оболочка находится в таком состоянии, что маркер влево и вправо перемещаться не может (например, файловые панели находятся в режиме Full или панели вообще отключены), то данные клавиши могут использоваться для перемещения курсора в командной строке. В противном случае на 101- или 102-клавишной клавиатуре для перемещения курсора на один символ влево (вправо) можно дополнительно к перечисленным использовать комбинации клавиш Shift- (Shift-).

            Для упрощения ввода командной строки Norton Commander предоставляется три основные возможности:

            1) выбор исполняемого файла на файловой панели, в результате чего он передается на выполнение;

            2) сборку командной строки с переносом элементов панели;

            3) использование истории ввода командных строк.

            Для сборки командной строки помаркируйте элемент панели и нажмите комбинацию клавиш Ctrl-J (Ctrl-Enter). В результате этого элемент панели будет перенесен в поле командной строки, начиная с позиции курсора, возможно, с вставкой перед элементом пробела. Отметим, что Ctrl-Enter в среде Norton Commander'а является синонимом комбинации клавиш Ctrl-J не всегда, так как первая задействована для поиска командной строки в истории их ввода (см. ниже). Коллизии разрешаются в пользу именно этого. Средства переноса элементов панели в командную строку можно комбинировать с ручным ее заданием и редактированием.

            Оболочка запоминает 15 последних введенных командных строк (историю их ввода), список которых обрабатывается аналогично стеку. Для доступа к истории ввода командных строк можно использовать нижеперечисленные способы:

            1) выдать команду History в подменю Commands (синоним - Alt-F8) и выбрать требуемую командную строку, которая сразу вводится (редактирование невозможно) и начинает выполняться;

            2) напечатать несколько первых символов требуемой командной строки и нажать комбинацию клавиш Ctrl-Enter. В результате этого в поле командной строки появится последняя из подходящих строк. Ее можно отредактировать и ввести клавишей Enter;

            3) просмотреть стек путем нажатия комбинаций клавиш Ctrl-Е и Ctrl-Х.

            При каждом нажатии Ctrl-Е в поле командной строки выдается предыдущая командная строка (осуществляется просмотр от вершины стека к его дну). При каждом нажатии Ctrl-Х в поле командной строки появляется следующая командная строка (начиная от строки, извлеченной из стека по Ctrl-Е ). Выданную в поле командной строки строку можно отредактировать и ввести клавишей Enter. Если обе панели отключены, то синонимами комбинаций клавиш Ctrl-Е и Ctrl-Х являются клавиши ↑ и ↓ соответственно. Заметим, что вершину стека, а тем более остальные его элементы удалить путем манипулирования Ctrl-Е, Ctrl-Х и Esc нельзя.

 

6.5. Использование встроенного текстового редактора

 

            Если в подменю Options командой Editor выбран встроенный текстовый редактор, то после выдачи команды Edit из подменю Files появится его полный экран. Если Вы создаете новый файл, то экран будет пуст; в противном случае отобразится содержимое редактируемого файла.

            В любом случае на экране редактора верхнюю строку занимает поле статуса, а нижнюю - поле подсказок.

            В поле статуса последовательно расположены:

            1) слово Edit: (редактирование);

            2) спецификация редактируемого файла;

            3) режимы редактирования, где может быть указан символ " (включен режим отмены команды редактора) и/или символ *, если файл модифицирован, но не сохранен;

            4) номер строки файла, в которой находится курсор (Line);

            5) номер колонки, в которой находится курсор (Col);

            6) остаток свободного пространства в файле а байтах (Free), т.е. дополнение до величины 25 Кбайт;

            7) ASCII-код символа над курсором в десятичной системе счисления либо мнемоническое его обозначение: EOL или EOF.

            Назначение клавиш в поле подсказок мы рассмотрим после перечисления команд редактирования.

            При создании и/или редактировании текстового файла можно использовать следующие клавиши и их комбинации (команды редактирования):

 

Ctrl-← (Ctrl-A)          - переместить курсор влево на одно слово;             

Ctrl- (Ctrl-F)          - переместить курсор вправо на одно слово;                      

Home                        - переместить курсор в начало строки;                                 

End                            - переместить курсор в конец строки;

Ctrl-Home                 - переместить курсор в начало файла;          

Ctrl-End                    - переместить курсор в конец файла;

Ctrl-BS (Ctrl-W)        - удалить слово слева от курсора;

Ctrl-T                          - удалить слово справа от курсора;

Ctrl-Y                         - удалить строку, на которой позиционирован курсор;

Ctrl-K                         - удалить символы от позиции курсора до конца строки;

Ctrl-Q                         - включить/выключить режим отмены команды редактора, чтобы можно было ввести в текст любой управляющий символ ASCII. Данный режим автоматически отключается после ввода одного символа.

 

            Дополнительно к этому для выдачи команд используются клавиши ↑, →, ↓, ←, PgUp, PgDn, BS и Del, нажатие которых имеет традиционный смысл. Легко установить, что клавиша Del обеспечивает наряду с удалением символа и сцепление строк, что равносильно удалению маркера EOL.

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

            1) установить курсор в конец той строки, за которой требуется вставить пустую, и нажать Enter;

            2) установить курсор в начало той строки, перед которой нужно вставить пустую, и нажать Enter;

            3) установить курсор на тот символ строки, который должен быть первым в новой (следующей) строке, и нажать Enter. В этом случае осуществляется разрыв строки, т.е. одна строка делится на две.

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

            Теперь перечислим команды манипулирования, которые можно выдать только путем нажатия клавиш и их комбинаций (некоторые из них показаны в поле подсказок):

 

F1                   - вызвать интерактивный справочник;

F2                   - сохранить файл под указанным в поле статуса именем;

Shift-F2         - сохранить файл под новым именем, которое следует ввести в открывшемся после выдачи команды в окне;

F7                   - найти в файле, начиная от позиции курсора, символьную строку, которая должна быть введена в появившемся после выдачи команды окне;

Shift-F7         - продолжить поиск;

Esc (F10)      - выйти из редактора без сохранения файла (если файл модифицирован, то будет выдан запрос на подтверждение);

Shift-F10       - сохранить файл и выйти из редактора (эквивалентно последовательности команд F2, Esc).

 

6.6. Создание пользовательского меню

 

            После выдачи команды Menu file edit в подменю Commands Вам будет предложено уточнить, какое пользовательское меню Вы хотите создать (отредактировать): главное (Main) или локальное (Local). Главное меню будет размещаться в том же каталоге, где находятся файлы оболочки, а локальное - в рабочем каталоге, т.е. в каталоге, за которым закреплена активная панель. Вызов меню описан в п. 6.3.2 (команда User menu).

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

            При создании или редактировании пользовательского меню доступны практически все команды встроенного текстового редактора, но не разрешается специфицировать имя файла (всегда используется файл NC.MNU).

             NC.MNU является обычным текстовым файлом, однако команды меню оформляются в соответствии с определенными правилами.

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

            Строка-заголовок будет отображаться при вызове пользовательского меню на экран (кроме двоеточия - см. ниже). Она начинается с оперативной клавиши вызова команды (любая клавиша пишущей машинки, за исключением ', или функциональная клавиша Fі, где і=1,...,10), за которой должно следовать двоеточие. После двоеточия, по крайней мере через один пробел, располагается наименование команды. Если оперативно выдавать команду не предполагается, то сделайте поле оперативной клавиши пустым (в этом случае наименование команды должно записываться в строке-заголовке без начальных пробелов). Отметим, что оперативная выдача пользовательской команды возможна только после вызова пользовательского меню на экран дисплея (а не на главном экране оболочки). Альтернативным способом ввода пользовательской команды является явный выбор пункта пользовательского меню.

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

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

            Рассмотрим пример описания пользовательской команды для вызова интегрированной среды Turbo Pascal и ее настройки на обработку файлов в корневом каталоге дискеты в приводе А:

 

P: Turbo Pascal 6.0

            PAUSE Установите дискету в привод А

            A:

            CD \

            D:\LANGS\TP60\TURBO

            D: 'Возврат в рабочий каталог

 

            В пользовательском меню эта команда может быть выдана нажатием клавиши Р. Вместо Р можно было бы, например, указать F3.

 

6.7. Создание файла расширений

           

            Файл расширений - это текстовый файл, в котором описываются действия, выполняемые при выборе файла на файловой панели и определяемые его расширением, если он не является исполняемым. Файл расширений размещается в том же каталоге, что и остальные файлы оболочки, и имеет имя NC.EXT.

            Для создания или редактирования файла расширений следует выбрать команду eXtension file edit в подменю Comands. В результате этого появится экран, аналогичный экрану встроенного текстового редактора, но в нижней его части (перед полем подсказок) будет размещена заставка со справочной информацией о правилах описания действий в соответствии с расширением выбранного на файловой панели файла.

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

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

            В командной строке допускается использовать следующие параметры файла расширений:

 

!           - имя выбранного на файловой панели файла;

!.!         - составное имя  выбранного на файловой панели файла (имя и расширение);

!\          - полный маршрут (без привода), завершающийся рабочим каталогом;

!:          - текущий привод.

 

            Если требуется указать символ ! как таковой, то продублируйте его, задав !!.

            Рассмотрим возможный фрагмент файла расширений:

 

BAK:   DEL *.BAK

ARC:  SHEZ !.!

PAK:   SHEZ !.!

ZIP:     SHEZ !.!

LZH:   SHEZ !.!

ICE:    SHEZ !.!

ZOO:  SHEZ !.!

TXT:    D:\EDITORS\TEXT\ME !.!

PAS:   D:\LANGS\TP60\TURBO !.!

 

            При выборе BAK-файла автоматически будут удалены все BAK-файлы, находящиеся в рабочем каталоге. В случае выбора ARC-, PAK-, ZIP-, LZH-, ICE- или ZOO-файла (т.е. архива в соответствующем формате) будет вызвана оболочка SHEZ и в нее загрузится этот файл. Для ТХТ-файлов предусмотрен запуск текстового редактора Multi Edit. Выбранный РАS-файл будет загружен в интегрированную среду Turbo Pascal 6.0.

            Для описания реакции на выбор файла без расширения начните строку файла расширений с символа :.

            Если требуется выполнить при выборе файла несколько команд DOS (и/или программ), то оформите их последовательность в виде отдельного командного файла и используйте его вызов в файле расширений.

            В файле расширений должно быть не более 30 строк.

 

6.8. Использование интерактивного справочника

 

            Интерактивный справочник Norton Commander'a (Help) состоит из последовательности статей и оглавления. Статьи кратко описывают команды оболочки.

            Интерактивный справочник может быть оперативно вызван в любом состоянии Norton Commander'a путем нажатия клавиши F1. В результате этого на экране появляется окно Help, в котором отображается статья справочника, связанная с тем или иным состоянием оболочки. Иными словами, справочник является контекстно-зависимым. Например, если маркер установлен на пункте eXtension file edit подменю Comands, то в окне Help появится информация, показанная на рис. 6.19.

Рис. 6.19. Статья "Ехtension  File Еdit " интерактивного справочника

 

            В верхней части окна Help указывается название статьи, а в нижней - пункты дальнейшего выбора. Обычно статья не помещается в окне целиком. Для удобства пользователя в правой части окна размещена шкала, на которой видно, какая часть статьи просмотрена. Эта шкала называется индикатором прокрутки, а на жаргоне - лифтом или элеватором. Для прокрутки длинной статьи используйте клавиши ↑, ↓, PgUp и PgDn, нажатие которых имеет традиционный смысл.

            После просмотра статьи можно:

            1) выбрать пункт Next для перехода к следующей статье справочника (в соответствии с оглавлением);

            2) выбрать пункт Previons для перехода к предыдущей статье справочника (в соответствии с оглавлением);

            3) выбрать пункт Index для входа в оглавление справочника;

            4) выбрать пункт Cancel или нажать клавишу Esc для закрытия окна Help (для выхода из справочника).

В оглавлении справочника (см. его фрагмент на рис. 6.20) имеется маркер, с помощью которого клавишами ↓, ↑, PgDn и PgUp, а также  Enter можно выбирать интересующую Вас статью для просмотра (эквивалентно пункту Help). Выход из справочника в данном контексте также можно осуществить клавишей  Esc (эквивалентно позиции Cancel).

 

Рис. 6.20. Оглавление интерактивного справочника

 

6.9. Сводка оперативных команд

 

         Для удобства использования оперативные команды оболочки Norton Commander сведены в табл. 6.1. Отметим следующее:

            1) клавиши + и   на малой цифровой клавиатуре действуют в зависимости от типа панели различно: на файловой панели они обеспечивают выделение и отмену выделения группы файлов по шаблону; на структурной панели - служат для перемещения маркера по каталогам одного уровня; на панели быстрого просмотра - используются для выбора формата отображения файла; на информационной панели эти клавиши не действуют;

            2) если обе панели включены, то клавиши и являются синонимами комбинаций клавиш Ctrl-E и Ctrl-X соответственно, о чем уже говорилось;

            3) в ряде случаев клавиши ← и → могут использоваться для перемещения курсора по командной строке (как синонимы комбинаций клавиш Ctrl-S и Ctrl-D соответственно), на что тоже уже обращалось внимание;

            4) комбинация клавиш Сtrl-Enter является синонимом комбинации Ctrl-J не всегда (см. подраздел 6.4).

 

6.10. Коррекция файлов оболочки для работы с кириллицей

 

            Оболочка Norton Commander не совсем нормально работает с файлами, содержащими символы кириллицы. В первую очередь это касается использования русской буквы "Р" во встроенном текстовом редакторе и ее отображения некоторыми визуализаторами. Для устранения отмеченного недостатка достаточно в ряде файлов оболочки заменить следующие байты на 00Н (в оригинале они содержат код Е0Н):             

                                               Файл                                                  Смещение

                                               NC.EXE                                            9CBDH

                                               NCMAIN.EXE                                 1E02H

                                               WPVIEW.EXE                                 36BEN

                                               PARAVIEW.EXE                            8BE6H

                                               DBVIEW.EXE                                 2852H

            Для замены можно воспользоваться любым шестнадцатеричным дисковым редактором, в частности Disk Editor'ом из комплекта Norton Utilities.

 

6.11. Обнаруженные в оболочке ошибки

             В Norton Commander'е выявлен ряд ошибок, среди которых следующие.

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

            "Зависание" оболочки часто происходит также при попытке визуализации текстового файла визуализатором WPVIEW.EXE. Оно определяется содержимым файла. В частности, к нему приводят файлы, содержащие на границе между секторами в кластере число 0200Н. На многих же текстовых файлах наблюдается другой эффект: визуализатор WPVIEW.EXE по F3 просто отказывается отображать содержимое файла и возвращает управление оболочке.