Возможные операции над текстом документа
Наиболее характерными операциями, выполняемыми над текстом, являются вставка, изъятие и замена его отдельных символов или слов [2]. Кроме того, к основным операциям по редактированию относятся вставка больших частей текста, перемещение, копирование и перестановка (которая может быть выполнена с помощью двух операций перемещения различных единиц текста). Некоторые из перечисленных операций заслуживают специального рассмотрения.
Вставка
Как уже отмечалось при обсуждении вопроса о моделях представления документа, большинство пользователей рассматривают процесс редактирования документа с помощью ЭВМ как своеобразный аналог печатания на пишущей машинке. Пользователям, которые именно так представляют себе редакторскую работу с применением текстового редактора, обеспечиваемая машиной возможность как бы раздвинуть строку старого текста с тем, чтобы вставить туда новый текст, кажется чуть ли не магической и противоестественной. Системы, базирующиеся на использовании преимуществ данной концептуальной модели пользователей и имитирующие обычную печатающую машинку, позволяют, однако, несколько расширить возможности последней,' а именно допускают поочередную замену отдельных символов уже набранного текста. В тех же случаях, когда необходимо вставить некоторый текст между двумя позициями уже напечатанного текста, такие системы требуют от пользователя ввода специальной команды, которая позволяет как бы «раскрыть» свободную для печати область в определенной позиции текста документа. По окончании вставки пользователь должен нажать специальную клавишу, что будет означать для системы, что следует «закрыть» область вставки. На первый взгляд такая модель представляется наиболее естественной, однако ее существенный недостаток заключается в том, что простейший способ выполнения операции редактирования по своей природе является разрушительным для уже созданного текста. Поэтому лучше наделить систему возможностью вставлять символы в текст, не уничтожая, а сдвигая символы, на место которых при редактировании вводятся новые.
Разработка систем, в которых для выдачи команд используются только обычные (не функциональные) клавиши, сталкивается с проблемой, состоящей в том, что эти же самые клавиши используются пользователями также и для набора текста. Смысл нажатия определенной клавиши может быть определен системой только в результате анализа того режима работы, в котором оно было произведено. Как правило, система обычно находится в командном режиме, при котором нажатие клавиш интерпретируется как команды; существует также специальная команда, переводящая систему в режим вставки, при котором с нажатием клавиши соответствующий символ вставляется в текст документа. При этом довольно часто возникают ошибки, связанные с неверным применением пользователями режимов работы Чтобы избежать этого, многие системы специально проектируются как «безрежимные», т. е. нажатие клавиш, не являющихся функциональными, в любом случае влечет за собой вставку соответствующего символа в текст документа и не может быть использовано для выдачи команд. Однако экспериментальные исследования не выявили значительного преимущества в применении систем безрежимного редактирования [34]. Это объясняется, возможно, тем, что включение в систему альтернативных командных языков вызывает новые проблемы. Тем не менее при прочих равных условиях безрежимная система может, кроме того, помочь пользователю не допускать ошибок, связанных с неверным использованием режима. Перемещение и копирование частей текста
Выполнение операций по перемещению или копированию частей текста требует определения положения текста, который необходимо перенести или скопировать, и позиции, указывающей место вставки его в документ. Указание системе этих двух местоположений может быть дано пользователем непосредственно перед вызовом на исполнение той или иной команды. Если курсор или иной символ для выполнения операции вставки уже находится в нужном месте, определяющем местоположение вставляемого текста (например, в результате только что произведенной пользователем вставки части текста в данную позицию), было бы удобно до указания системе требуемой части документа, подлежащей перемещению или копированию, обеспечить запоминание отмеченной позиции, чтобы пользователю не пришлось потом вновь к ней возвращаться. Подобным образом, если текст, под - лежаший той или другой операции, уже выбран, наиболее предпочтительно было бы выдать команду, первым аргументом которой будет именно текст. Эти два возможных способа упорядоченного ввода аргументов операций являются отражением двух различных вариантов рассматриваемых команд для решения задач, характеризующихся разными конкретными условиями. Системы, позволяющие работать с обоими вариантами команд, более полно удовлетворяют требования пользователя, чем системы, допускающие вызов лишь одного типа команд по перемещению и копированию.
Сам факт использования в команде более одного аргумента может усложнить некоторые командные языки. Отдельные системы позволяют избежать этого, допуская разделение процесса перемещения или копирования на две операции: «вырезания» и «вклеивания». Сначала пользователь определяет текст для его перемещения (копирования) и выдает команду «вырезать» (или «скопировать»). Тогда отмеченный пользователем текст переносится в буфер, откуда он впоследствии может быть вызван в любое удобное время до того момента, пока пользователь не захочет поместить в буфер следующий фрагмент текста. Такой способ выполнения операций по перемещению (копированию) позволяет упростить командный язык, однако его использование наиболее эффективно в том случае, когда пользователю предоставляется возможность просматривать содержание буфера, а не работать «вслепую», полагаясь на то, что требуемый текст действительно там находится.
Замены во всем тексте документа
Многие операции по редактированию документов представляют собой единичные и последовательно выполняемые операции, которые были описаны выше. Иногда бывает необходимо каким - либо образом изменить словарный состав текста или какие-либо встречающиеся в нем символы не в конкретном месте, а по всему документу. Способность системы к такой обширной замене определяется ее поисковыми возможностями, описанными в разд. 4 2 2. Процесс происходит следующим образом: пользователь задает искомую цепочку символов, а затем также указывает цепочку, на которую следует заменить первую. Система производит замену по всему документу или по тем частям текста, которые отмечены пользователем. Дополнительные возможности системы, связанные с указанным свойством, могут быть расширены таким образом, чтобы система перед выполнением каждой конкретной замены запрашивала бы ее подтверждение у пользователя.
Широкие возможности, предоставляемые применением универсальных шаблонов в виде безразличных символов при задании цепочек для поиска, полезны и при решении задачи общей замены по всему тексту. При этом могут использоваться переменные, которые особенно важны в тех случаях, когда при замене необходимо оставить определенную часть цепочки в ее первоначальном виде. Например, поисковая цепочка может выглядеть как «а<1)Ь», что символизирует собой все цепочки, начинающиеся с «а» и оканчивающиеся «6». Если замещающая цепочка имеет вид «c<l)d», то в результате операции «а» будет заменено на «с» и «Ь» на «d», а символы, находящиеся между ними, останутся неизменными. Замена типа «/<1>:<2>/» на «/<2> :<]>/» приведет к перестановке цепочек, находящихся по разные стороны от двоеточия. Таким образом, можно сказать, что данная системная возможность позволяет пользователям имитировать «программирование», и продолжительного предварительного обучения для этого не требуется.
Помощь в написании текстов
Еще к более высокому уровню относятся программы автоматического редактирования, помогающие автору текста в первичном семантическом представлении текста. В настоящее время ведутся исследования различных инструментариев, которые помогали бы пользователю в подборе наиболее подходящей общей организации текста и в проведении классификации основных его понятий. Созданы программы, проверяющие орфографию текста, расставляющие знаки переноса, проверяющие правильность грамматического написания текста (например, подлежащее и сказуемое в предложении должны быть согласованы в числе) и определяющие уровень сложности текста как функцию длины употребляемых слов и предложений. Наиболее развитым пакетом прикладных программ авторских средств редактирования является «Автоматизированное рабочее место автора», разработанное фирмой Bell Laboratories [1, 14].