17.6. Экранный редактор
Встроенный экранный редактор предназначен для создания исходных текстов программ и их коррекции. В Turbo Pascal 6.0 и 7.0 по сравнению с предыдущими версиями увеличен максимальный размер создаваемого файла до 1 Мбайт. Практически не ограничен размер строки текста, хотя компилятор позволяет использовать только строки до 126 символов.
Редактор Turbo Pascal 6.0 и 7.0 обладает всеми возможностями редакторов предыдущих версий. Кроме того, он позволяет использовать "мышь" для перемещения курсора по тексту, выделения текста и т. д., позволяет использовать несколько окон, в которых можно расположить как один файл, так и различные файлы, осуществлять обмен информации между окнами, в том числе используя окно контекстной помощи, использовать клавиши перемещения курсора в сочетании с клавишей Shift для выделения фрагментов текста. Turbo Pascal 6.0 и 7.0 позволяют использовать промежуточный буфер Clipboard (см. п. 17.3.1), через который осуществляется обмен информации. Содержимое этого буфера можно редактировать, как и содержимое любого другого файла, и переносить из него информацию в другие файлы. В состав пакета Turbo Pascal 7.0 входят также программные средства, использующие специальный макроязык, позволяющие вводить по желанию в редактор новые команды.
Редактор запускается при активизации любого из окон редактирования. Текст набирается в окне редактирования обычным образом, как при печати на пишущей машинке. Для перехода к новой строке (или открытия новой строки) следует нажать клавишу Enter.
В стандартном режиме редактор позволяет выполнять большое количество команд, связанных с перемещением курсора по тексту, удалением и вставкой фрагментов, поиском информации и т. д. Все команды можно условно разбить на. пять групп: команды перемещения курсора, команды поиска фрагментов, команды вставки и удаления информации, команды работы с блоками информации, команды разнообразного назначения.
17.6.1. Некоторые рекомендации по созданию исходных текстов программ
В настоящее время не существует жестких правил написания программ - каждый программист вырабатывает свой собственный, удобный ему стиль. Однако можно дать общие рекомендации, которых целесообразно придерживаться с тем, чтобы программы были удобочитаемы не только самим разработчиком, но и другими специалистами. Это позволяет быстрее понять суть работы программы, легче находить и исправлять ошибки, проще вносить в нее при необходимости изменения. Эти рекомендации просты и не требуют для реализации особых усилий. Все они направлены на более четкую структуризацию программы. Суть их в следующем.
При создании программы не следует создавать больших программных модулей. Логически завершенные последовательности операторов целесообразно оформлять в виде подпрограмм. Отлаживая их отдельно, легче локализовать и исправить ошибки.
Не следует создавать большие текстовые файлы. Подпрограммы лучше компоновать в отдельные модули, размещая их в отдельные файлы. В этом случае при изменении какого-то одного модуля не нужно будет перекомпилировать все остальные.
При написании программы целесообразно использовать систему отступов, когда операторы, вложенные в другие операторы или операторные скобки, пишутся на строке с отступом вправо по отношению к другим операторам (обычно отступ делается в две позиции). Такое расположение операторов позволяет проще разобраться со структурой программы, понять ее содержание, быстрее найти некоторые ошибки (например, отсутствие закрывающей операторной скобки end, соответствующей какой-либо открывающей скобке begin). Примером такого расположения операторов может быть любая из программ данного пособия.
Не следует в одной строке объединять несколько операторов, за исключением простейших, т. к. это затруднит локализацию ошибки во время отладки программы, поскольку минимальный выполняемый блок команд в процессе отладки соответствует одной строке текста.
Последовательности операторов, выполняющих какое-то законченное действие, целесообразно отделять от предыдущих и последующих операторов пустыми строками.
Идентификаторам программы следует давать имена, отражающие их суть. При написании идентификаторов следует широко использовать как строчные, так и прописные буквы, а также знак подчеркивания: MyProgram, File_of__Digits, Volume_l и т. д. Не страшно использовать большие имена, т. к., используя промежуточный буфер (Clipboard), можно скопировать их необходимое число раз.
Рекомендуется широко использовать написание комментариев, по крайней мере для семантически связанных групп операторов или даже для отдельных операторов, если необходимо подчеркнуть их особенности.
Следует по возможности выделять в выражениях пробелами знаки операций (даже если они не являются зарезервированными словами), идентификаторы, числа и т. д.
Следует использовать при написании программы возможность расцвечивания разными цветами различных элементов программы, что позволяет делать версия 7.0. При этом проще проконтролировать правильность использования зарезервированных слов языка, комментариев, вставок на ассемблере и т. д.
Во избежание недоразумений не следует локальным и глобальным параметрам давать одинаковые имена.
Еще раз подчеркнем, что все лишние с точки зрения языка Паскаль пробелы, знаки табуляции, пустые строки, комментарии компилятором игнорируются и никак не сказываются на исполняемом файле программы.
Редактор позволяет довольно легко выдерживать указанные рекомендации. Так, можно автоматически задавать отступы при написании программы, если установлен параметр Option]Environment!Editor|Autoindent mode.
17.6.2. Команды перемещения курсора
Команды перемещения курсора позволяют перемещать курсор в пределах текста программы. При работе со словами под словом понимается последовательность символов до первого пробела или одного из следующих символов: < > , ; ( )^'*+-/$_=| ~ ?!"%&': @ \. Границей слова может быть и любой управляющий символ или символ псевдографики.
Переместить влево на символ Используется клавиша "стрелка влево" или комбинация Ctrl+S. Курсор перемещается на один символ влево в пределах строки.
Переместить вправо на символ Используется клавиша "стрелка вправо" или комбинация Ctrl+D. Курсор перемещается на один символ вправо в пределах строки.
Переместить влево на одно слово используется комбинация Ctrl+''стрелка влево" или Ctrl+A. Курсор перемещается на первый символ слова, находящегося слева от курсора, или на конец предыдущей строки, если слева в текущей строке больше слов нет.
Переместить вправо на одно слово Используется комбинация Сп*1+"стрелка вправо" или Ctrl+F. Курсор перемещается на первый символ слова, находящегося справа от курсора, или на конец строки, если справа в текущей строке больше слов нет.
Переместить вверх на одну строку Используется клавиша "стрелка вверх" или комбинация Ctrl+E. Курсор перемещается на предыдущую строку текста, если она существует.
Переместить вниз на одну строку Используется клавиша "стрелка вниз" или комбинация Ctrl+X. Курсор перемещается на следующую строку текста, если она существует, или в начало последней строки в противном случае.
Скроллинг на одну строку вверх Используется комбинация Ctrl+W. Экран перемещается по тексту на одну строку вверх, если эта строка существует. Курсор остается на прежней строке, если она оказывается в пределах экрана, или переходит на нижнюю строку экрана в противном случае.
Скроллинг на одну строку вниз Используется комбинация Ctrl+Z. Экран перемещается по тексту на одну строку вниз, если эта строка существует. Курсор остается на прежней строке, если она оказывается в пределах экрана, или переходит на верхнюю строку экрана в противном случае.
Переместить на страницу вверх Используется клавиша PgUp. Экран смещается по тексту вверх на величину своего размера по вертикали минус одна строка. Курсор, как правило, остается в предыдущей позиции экрана.
Переместить на страницу вниз Используется клавиша PgDn. Экран смещается по тексту вниз на величину своего размера по вертикали минус одна строка. Курсор, как правило, остается в предыдущей позиции экрана.
Переместить к началу строки Используется клавиша Ноте или комбинация Ctrl+Q S. Курсор перемещается в первую позицию текущей строки.
Переместить к концу строки Используется клавиша End или комбинация Ctrl+Q D. Курсор перемещается в последнюю позицию текущей строки.
Переместить на первую строку окна Используется комбинация Ctrl+Home или Ctrl+Q E. Курсор перемещается на первую строку окна.
Переместить на последнюю строку окна Используется комбинация Ctrl+End или Ctrl+Q X. Курсор перемещается на последнюю заполненную строку окна.
Переместить на начало текста Используется комбинация Ctrl+PgUp или Ctrl+Q R. Курсор перемещается на первый символ текста.
Переместить на конец текста Используется комбинация Ctrl+PgDn или Ctrl+Q С. Курсор перемещается на последний символ текста.
Переместить на начало выделенного блока Используется комбинация Ctrl+Q В. Курсор перемещается на начало блока, выделенного с помощью команды Ctrl+K В (см. п. 17.6.5) или с помощью "мыши". Команда работает, если даже блок погашен командой Ctrl+K H (см. п. 17.6.5) и даже если он находится за пределами экрана. В последнем случае текст, в который должен перейти курсор, выводится на экран.
Переместить на конец выделенного блока Используется комбинация Ctrl+Q К. Курсор перемещается на конец блока, выделенного с помощью команды Ctrl+K К (см. п. 17.6.5) или с помощью "мыши". Команда работает, даже если блок погашен командой Ctrl+K H (см. п. 17.6.5) и даже если он находится за пределами экрана. В последнем случае текст, в который должен перейти курсор, выводится на экран.
Переместить к последней позиции курсора Используется комбинация Ctrl+Q P. Курсор перемещается в положение, кото- ч рое он занимал до выполнения последней команды редактора или меню. Команду полезно использовать после поиска какого-либо фрагмента текста (см. п. 17.6.3) для возвращения курсора в исходное положение.
Переместить к позиции последней ошибки Используется комбинация Ctrl+Q W. Курсор перемещается в место обнаружения последней ошибки. Одновременно выводится сообщение об обнаруженной ошибке. Эквивалентно команде меню Search | Show last compile error (см. п. 17.5.3).
Установить маркер Используется комбинация Ctrl+K n. Задается маркер с номером п в месте расположения курсора, к которому затем можно перейти из любого места программы с помощью команды Ctrl+Q n (см. ниже); п может быть в пределах от О до 9.
Перейти к маркеру Используется комбинация Ctrl+Q n, где п - номер маркера, заданный в команде Ctrl+K n (см. выше). Курсор перемещается в место текста, где был установлен маркер.
17.6.3. Команды поиска фрагментов
Команды поиска фрагментов позволяют искать в тексте те или иные фрагменты информации (а в некоторых случаях и заменять их на другие). Фрагмент для поиска задается в окне диалога и может содержать до 80 символов, в том числе и управляющих.
Найти фрагмент Используется комбинация Ctrl+Q F или команда меню Search | Find. По этой команде открывается окно диалога, в котором задаются фрагмент текста и параметры поиска информации (см. п. 17.5.3). После завершения работы с окном осуществляется поиск первого нахождения искомого фрагмента в тексте.
Найти и заменить фрагмент Используется комбинация Ctrl+Q А или команда меню Search | Replace По этой команде открывается окно диалога, в котором задаются фрагмент текста для поиска, фрагмент для замены и параметры поиска информации (см п 17 5 3) После завершения работы с окном осуществляется поиск первого нахождения искомого фрагмента в тексте и замена его на другой заданный фрагмент.
Повторить поиск фрагмента Используется комбинация Ctrl+L или команда меню Search | Search again (см. п. 17.5.3). По этой команде осуществляется поиск в тексте следующего нахождения фрагмента, заданного командой Ctrl+Q F или Ctrl+Q A.
Найти парную скобку Используется комбинация Ctrl+Q [ или Ctrl+Q ]. Ищется пара к одной из следующих скобок: { [ ( < " ' > ) ] }. Для скобок " и ' важно, в каком направлении осуществлять поиск: вперед по тексту (используется команда Ctrl+Q [) или назад по тексту (используется команда Ctrl+Q ]). Для поиска других скобок эти команды эквивалентны. Если парная скобка найдена, курсор перемещается к ней, в противном случае курсор остается на месте.
17.6.4. Команды вставки и удаления информации
Команды вставки и удаления позволяют помещать в текст и удалять из него символы, слова, строки.
Переключить режим замены и вставки Используется клавиша Ins, комбинация Ctrl+V или команда меню OptionslEnvironmentlEditorllnsert mode (см. п. 17.5.8). В режиме вставки добавляемая информация помещается в месте расположения курсора, при этом уже имеющийся текст раздвигается. В режиме замены добавляемая информация помещается в месте расположения курсора, при этом она накладывается на уже имеющийся текст.
Поместить символ Используется клавиша с названием символа. Символ помещается в место расположения курсора.
Задать префикс управляющего символа Используется комбинация Ctrl+P. Устанавливается префикс управляющего символа, означающий, что в текст будет вводиться управляющий символ. Этот символ необходимо вводить сразу за префиксом.
Поместить знак табуляции. Используется клавиша Tab или комбинация Ctrl+I. По этому знаку курсор перемещается вправо на число позиций, равное установленной величине табуляции (по умолчанию - 8 позиций).
Перейти на новую строку Используется клавиша Enter. В текст помещаются управляющие символы перевода строки (код 10) и возврата каретки (код 13). Курсор переходит на новую строку.
Вставить строку Используется комбинация Ctrl+N. В текст помещаются управляющие символы перевода строки (код 10) и возврата каретки (код 13). Курсор остается на старой строке.
Поместить в текст ключи компилятора. Используется комбинация Ctrl+O О. По этой команде в начале текста программы помещаются ключи компилятора, используемые по умолчанию (см. п. 17.7.1).
Удалить символ слева от курсора. Используется клавиша Backspace или комбинация Ctrl+H. Удаляется символ (в том числе и управляющий), стоящий слева от курсора.
Удалить символ над курсором. Используется клавиша Del или комбинация Ctrl+G. Удаляется символ (в том числе и управляющий), стоящий над курсором.
Удалить слово справа от курсора. Используется комбинация Ctrl+T. Удаляется слово (см. п. 17.6.2) или часть слова справа от курсора.
Удалить символы от курсора до конца строки. Используется комбинация Ctrl+Q Y. Удаляется часть строки от курсора и до ее конца.
17.6.5. Команды работы с блоками информации
Команды работы с блоками информации позволяют выделять блоки информации, удалять их, копировать, перемещать и т. д. Под блоком понимается выделенный фрагмент текста (символ, слово, строка, абзац и т. д.). Блок информации на экране выделяется особым цветом символов и фона. Выделить блок информации можно тремя способами:
- используя команды, указанные ниже;
- используя "мышь"; в этом случае курсор "мыши" помещается на начало блока, нажимается ее левая клавиша, затем не отпуская левой клавиши курсор перемещается в конец выделяемого блока, после чего левая клавиша отпускается;
- используя комбинации клавиш Shift+''стрелка влево", Shift+''стрелка вправо", Shift+''стрелка вверх" или Shift+''стрелка вниз".
Следует иметь в виду, что любая попытка выделить новый блок любым из указанных способов автоматически снимает выделение предыдущего блока, если он был уже выделен.
Пометить начало блока Используется комбинация Ctrl+K В. Устанавливается метка начала выделяемого блока. Этой операцией начинается выделение блока.
Пометить конец блока Используется комбинация Ctrl+K К. Устанавливается метка конца выделяемого блока. Этой операцией завершается выделение блока.
Пометить блок размером в одно слово Используется комбинация Ctrl+K Т. Выделяется блок, состоящий из одного слова, на котором находится курсор. Если курсор находится не на слове, выделяется слово слева от курсора, стоящее в той же строке. Если слева от курсора слова нет, выделяется слово справа от курсора или же первое слово в следующих строках, если в текущей строке нет слов.
Скопировать помеченный блок в промежуточный буфер Используется комбинация Ctrl+Ins или команда меню Edit | Сору (см. п. 17.5.2). Помеченный блок копируется в промежуточный буфер (см. п. 17.3.1), из которого он может быть скопирован в любое место текущего файла или в другой файл.
Перенести помеченный блок в промежуточный буфер Используется комбинация Shift+Del или команда меню Edit|Cut (см. п. 17.5.2). Помеченный блок переносится в промежуточный буфер (см. п. 17.3.1), из которого он может быть скопирован в любое место текущего файла или в другой файл.
Перенести блок из промежуточного буфера в файл Используется комбинация Shift+Ins или команда меню Edit | Paste (см. п. 17.5.2). Блок переносится из промежуточного буфера (см. п. 17.3.1) в активное окно, в место расположения курсора.
Скопировать помеченный блок в место расположения курсора Используется комбинация Ctrl+K С. Помеченный блок копируется в место расположения курсора в окне редактирования.
Переместить помеченный блок в место расположения курсора Используется комбинация Ctrl+K V. Помеченный блок перемещается в место расположения курсора в окне редактирования.
Удалить помеченный блок Используется комбинация Ctrl+Del или Ctrl+K Y или команда меню Edit Clear (см. п. 17.5.2). Помеченный блок удаляется из файла.
Погасить или высветить блок Используется комбинация Ctrl+K H. Устраняется выделение помеченного блока особым цветом, хотя блок и остается помеченным. При повторном использовании команды блок вновь выделяется особым цветом символов и фона.
Записать блок на диск Используется комбинация Ctrl+K W. Помеченный блок записывается на диск. Перед записью будет задан вопрос, в файл с каким именем следует записать блок. Если имя будет указано без расширения, автоматически файл получит расширение .PAS.
Прочитать блок с диска Используется комбинация Ctrl+K R. Блок читается с диска и помещается в место расположения курсора. Перед чтением будет задан вопрос, из какого файла читать блок.
Распечатать блок на принтере Используется комбинация Ctrl+K P или команда меню File | Print (см. п. 17.5.1). Помеченный блок распечатывается на принтере. Если блок не выделен, распечатывается весь файл.
Сдвинуть блок вправо на одну позицию Используется комбинация Ctrl+K I. Помеченный блок сдвигается вправо на одну позицию. Команда может применяться для создания отступов при написании программы.
Сдвинуть блок влево на одну позицию Используется комбинация Ctrl+K U. Помеченный блок сдвигается влево на одну позицию. Команда может применяться для создания отступов при написании программы.
17.6.6. Команды разнообразного назначения
В эту группу входят команды вспомогательного назначения, связанные с заданием режима работы редактора, чтением и сохранением файлов, выходом из среды и т. д.
Загрузить файл для редактирования Используется клавиша F3 или команда меню File I Open (см. п. 17.5.1). По этой команде выводится окно диалога, с помощью которого можно задать имя требуемого файла (в том числе и не существующего на диске). Файл можно поместить либо в текущее окно редактирования, используя кнопку Replace (заменить) , либо в новое окно редактирования, используя кнопку Open (открыть).
Создать новый файл Используется команда меню File I New (см. п. 17.5.1). По этой команде открывается новое пустое окно редактирования, в которое можно помещать текст новой программы. Первоначально файлу присваивается имя NONAMEXX, где XX - порядковый номер файла. Это имя нужно изменить, когда файл будет записываться на диск (соответствующий запрос будет выдан на экран дисплея).
Сохранить текст на диске Используется клавиша F2 или команда меню File I Save (см. п. 17.5.1). По этой команде текст сохраняется в файле на диске, при этом окно редактирования остается активным и можно продолжать работу с этим текстом. Если файл имеет временное имя NONAMEXX, будет выдано сообщение о необходимости переименовать файл.
Выйти в основное меню Используется клавиша F10. Эта команда активизирует основное меню.
Вернуться из меню в окно редактирования Используется клавиша Esc. По этой команде заново активизируется текущее окно редактирования. Возвращение в текущее окно редактирования осуществляется также после завершения почти всех команд меню.
Восстановить строку Используется комбинация Ctrl+Q L или команда меню Edit | Undo (см. п. 17.5.2). Восстанавливается первоначальный вид последней отредактированной строки.
Установить автоматический отступ текста Используется команда меню Options | Environment! Editor |Autoindent mode (см. п. 17.5.8).
Установить режим использования клавиши табуляции Используется команда меню Options|Environment!Editor|Use tab characters (см. п. 17.5.8).
Установить оптимизацию пробелов и знаков табуляции Используется команда меню Options! Environment! Editor! Optimal fill (см. п. 17.5.8).
Установить режим удаления отступа клавишей Bakspace Используется команда меню Options! Environment! Editor | Bakspace unindent (см. п. 17.5.8).
Выход из среды Используется комбинация Alt+X или команда меню File | Exit (см. п. 17.5.1).
|