Сага о текстах
текстовых редакторах, процессорах, а также русских буквах, шрифтах и правильнописании

Содержание

  • Что нужно писателю, чтобы писать
  • Текстовые редакторы
    • Редактор текстов - каким хотелось бы видеть
    • Vi - классика мира Unix
    • Вариации на тему Emacs
    • Прочие консольные редакторы
    • Средства KDE - Kedit, Kwrite, Katy
    • Прочие редакторы для системы X Window
    • Nedit - на пути к идеалу
  • Текстовые процессоры
    • Ted как орудие бюрократа и головотяпа
    • Lyx и Klyx, а также немного про TeX
  • Буквы, шрифты, спеллинг

Что нужно писателю, чтобы писать

В свое время юный Карел Чапек спросил своего дядю, известного в те годы писателя: "Как пишутся романы?" - "Сидя, молодой человек!" - ответил тот.

И по сию пору романы, а также рассказы, статьи, эссе, монографии, докладные (и закладные) записки и все прочие тексты пишутся по прежнему сидя. Правда, обычно за компьютером, а не листом бумаги. И потому, помимо компьютера, требуют некоторого инструментария - средств для работы с текстами.

Их можно разделить на две группы - средства для составления текстов, текстовые редакторы, и средства для оформления таковых - текстовые процессоры. В чем разница между ними?

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

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

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

Работа с текстами подразумевает еще один аспект - языковый. И, соответственно, для нее нужны средства языковой поддержки, то есть ввода символов и их отображения на экране - раз, шрифтового отображения на печати - два. Ну и проверка орфографии вряд ли покажется лишней. Конечно, все мы учились понемногу, но правильнописание хромает не у одного Винни-Пуха...

Начнем рассмотрение с тех инструментов, которые представляются более важными. Это -

Текстовые редакторы

Редактор текстов - каким хотелось бы видеть

Из данного выше определения редактора следует, что для огромного количества трудящихся это - один из основных инструментов. А такой инструмент всегда хочется видеть если не идеальным, то максимально к идеалу приближенным. Каковы же требования к идеальному редактору?

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

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

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

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

Крайне желательны также - расцветка синтаксиса, по крайней мере HTML и TeX, многооконный режим работы, возможность работы с различными кодировками русского языка, ну и как предел мечтаний - поддержка проектов из нескольких файлов, с возможностью групповых операций (скажем, поиска и замены) в них.

Должен сразу сказать - хоть "все страны облазил, и Европе был, и в Азии", идеала своего я пока не нашел. И не только под Linux, но и под Windows. Онако именно с позиций приближения к этому идеалу я и буду описывать ниже текстовые редакторы.

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

Количество текстовых редакторов под Linux достаточно велико. Что же они из себя представляют, для чего предназначены и на что способны?

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

Начал я, естественно, с редакторов консольных. Почему? - спросите вы меня. Ведь все прогрессивное человечество уже пол-десятилетия работает в графических средах.

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

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

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

Именно поэтому первое, что приходит на ум из консольных редакторов -

Vi - классика мира Unix

Vi - редактор, в различных своих версиях (Vim, elvis и другие), модификациях и клонах (сохраняющих полную совместимость между собой) представленный абсолютно во всех Unix- и Unix-подобных системах. В большинстве случаев он является системным редактором по умолчанию. А в критических обстоятельствах может оказаться просто единственным.

Поэтому иметь представление о Vi необходимо любому пользователю Linux. Хотя назвать его чрезвычайно удобными в использовании я бы не рискнул - от него веет какой-то допетровской Русью. Я понимаю его поклонников - это пользователи Unix старого закала. В те времена былинные, после строчного редактора (помните о таких? в DOS это был edline, в Unix - просто ed), vi выглядел как шедевр. И те, кто впитал привычку к нему с молоком матери - никогда от него не откажутся. Тем более, что как редактор исходных текстов или системных файлов - он более чем функционален. Посмотрим же и мы, что это такое.

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

Пользователь DOS, помнящий еще о WordPerfect версий 4 и 5 (прекрасный был, кстати сказать, процессор), попытается тут же начать ввод текста - и не получит ничего, кроме звукового cигнала. Поскольку находится в режиме командном, ввода не допускающем. То есть нажатия на клавиши интерпретируются не как коды букв, а как команды программы.

Для перехода в режим ввода нужно нажать клавишу a (app) или i (insert); первая позволяет добавлять текст после курсора, вторая - вставлять перед. Теперь-то можно и печатать буквы, как в любом другом редакторе или процессоре.

Можно также и перемещаться по тексту с помощью стрелок управления курсором. Следует помнить только, что нажатие таких клавиш, как End и Home, не даст привычного для пользователя DOS эффекта. И, более того, автоматически переведет редактор в командный режим. Для всякого рода сложных перемещений (на слово влево и в право, в начало и конец строки, на стоку вверх и вниз, и так далее) используются комбинации клавиш в командном режиме. То же относится и к операциям удаления и замены слов и текстовых блоков: клавиши delete или insert не окажут никакого действия на выделенный фрагмент; нужно перейти в командный режим и выполнить соответствующие действия уже там.

А вот сохранение файла и выход из него требуют еще одного режима - построчного редактирования. Для этого нужно перейти из режима ввода в командный режим (нажатием клавиши Escape) и набрать : (то есть двоеточие), а после (без пробела) букву для соответствующего действа; например, w - для сохранения, q - для выхода (если файл был изменен, последует предложение сохранить изменения командой :w) или q! - для выхода без сохранения изменений.

Следует заметить, что далеко не всегда ясен текущий режим редактора. В той версии, к которой я набираю эти строки (Vim), режим ввода маркируется строчкой --INSERT-- внизу экрана; но в общем случае - это не обязательно. Косвенно текущий режим можно определить нажатием клавиши escape: в случае режима ввода это переведет редактор в командный режим, а в командном - просто вызовет звуковой сигнал.

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

Я, конечно, понимаю, что все особенности vi - реликты той далекой эпохи, когда главным средством доступа к вычислительным мощностям компьютеров были текстовые терминалы. Клавиатуры которых не имели, скажем, стрелок управления курсором. Однако немало с тех пор воды утекло. И найти ныне такую (работающую) клавиатуру - посложнее, чем пользователя, помнящего о ее существовании. Для которого применение vi и оправдано долголетней привычкой и доскональным знанием. Ныне же приходящим в Linux - есть что выбрать из иного.

Причем - выбор есть, даже не выходя за пределы консольного режима. Примером чему -

Вариации на тему emacs

Подобно vi, текстовый редактор emacs - инструмент классический. Именно он стоит у истоков всего течения open source. И уже поэтому заслуживает внимания. К тому же он часто рассматривается как универсальный инструмент, позволяющий решать почти любые задачи - от правки конфигурационных файлов до написания исходников программ в многие тысячи строк.

Естественно, о emacs написано немало. Достаточно вспомнить книгу Ричарда Столмена "Руководство по GNU Emacs", недавно изданную в русском переводе. Не говоря уже о многочисленных статьях, как в Интернете, так и в традиционных журналах. Однако обычно уделяется внимание использованию emacs как редактора для программистов. Мы же посмотрим, каковы его возможности в написании не исходных, но просто текстов.

Функционально emacs существенно ближе к текстовым редакторам DOS, чем vi. Он имеет один-единственный режим - режим редактирования, включающийся сразу же после запуска редактора. Практически все нем манипуляции осуществляются с помощью управляющих клавиш Control, Escape и Alt в комбинации с буквенными. Что особенно приятно нашему человеку, комбинации эти работают вне зависимости от раскладки клавиатуры.

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

  • в него может быть считано содержимое уже существующего файла ([Control+x] - общий компонент для всех операций с буферами и окнами, затем [Control+f] - от слова file, как я понимаю);
  • вновь созданный в буфере текст может быть записан как файл ([Control+x], [Control+s] - вероятно, от Save;
  • несколько текстовых файлов могут быть объединены в одном буфере последовательным выполнением команды ([Control+x] i), то есть insert, за которой следует запрос имени файла.

Редактор emacs позволяет работать в одной консоли с несколькими файлами одновременно. С этой целью для каждого файл посредством ([Control+x] b) создается новый буфер со своим именем (которое никакого отношения к имени файла иметь не обязано).

В каждом буфере можно работать с любым количеством окон, сколько их поместится на экране. Разделение экрана на два окна осуществляется командой ([Control+x] 2), переход между окнами командой ([Control+x] o). Фрагменты текста могут переноситься из окна в окно либо штатными командами emacs, либо путем выделения мышью и вставки в позицию курсора щелчком средней ее клавиши.

Очень приятной особенностью emacs является нормальное, с точки зрения пользователя DOS, поведение клавиш Home и End, перемещающих курсор, соответственно, в начало и конец строки. И еще: перенос слов на границе экрана осуществляется без разрыва строки, то есть, в терминологии текстовых процессоров, без образования нового абзаца (который возникает только при нажатии клавиши Enter). Что очень полезно, если в дальнейшем предполагается экспорт в какой-либо текстовый процессор типа Word: искоренение лишних символов возврата каретки, возникающих при переносе слов во многих редакторах, - занятие не из самых жизнерадостных.

Редактор emacs обладает довольно эффективными инструментами для редактирования введенного текста. Они основываются на понятии блока - то есть текстового фрагмента, расположенного между меткой (вводимой комбинацией [Control+@] и текущим положением курсора. Блок может быть изъят (аналог Cut в Windows) командой [Control+w] и вставлен (в текущем окне или буфере, или в ином другом) командой [Control+y]. Имеется также многоуровневая отмена последовательностю команд ([Control+x] u).

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

Впрочем, некоторая, скажем так, непривычность интерфейса emacs в известной мере сглаживается, если он запущен в окне терминала системы X Window. Это, как ни странно, не совсем то же самое, что emacs в режиме консольном. Правда, его можно запустить в окне терминала и в первозданном виде - командой

emacs -nw
(что означает "no window"); правда, не очень понятно, зачем это нужно - тогда уж лучше просто работать в консоли.

Потому что emacs, запущенный в терминальном окне той же командой без параметров, предоставляет многие дополнительные возможности по сравнению с чисто консольным вариантом. Для начала, в нем волшебным образом появляется строка меню, избавляющая от необходимости запоминания немерянного количества клавишных комбинаций (что само по себе не смертельно, но требует постоянной практики). Кроме того, курсор начинает вести себя обычным (для DOS/Windows-мигранта) способом, то есть может позиционироваться мышью. Есть и еще несколько приятных особенностей.

Итак, первое, что бросается в глаза при запуске emacs в окне терминала - это строка меню. Организованное не вполне стандартным, но по своему логичным образом.

Первым пунктом идет Buffers - основополагающее понятие для emacs. Здесь можно, во первых, переключаться между открытыми буферами, во вторых - вывести список буферов. В пункте Files, как это ни странно, помимо открытия, сохранения, переименования и вставки файла, также присутствуют операции с буферами (обращение и уничтожение буфера), а также с фреймами; термин "фрейм" в контексте emacs соответствует понятию окна в большинстве иных приложений.

В пункте Tools - масса всяких опций, от печати и сравнения файлов и буферов до чтения новостей, получения и отправки почты, поиска файлов, компилирования и отладки программ. В пункте Edit - обычный набор инструментов для редактирования (вырезание, копирование и вставка, а также отмена). Здесь же - всякого рода форматирование, именуемое свойствами текста - от шрифтоначертания и выравнивания до отступов и установок цвета фона и текста. В пункте Search - разнообразный поиск, а также работа с закладками (Bookmark).

Все, что не вошло в перечисленные пункты, собрано в пункте Mule (не от мула ли?). Главным образом, однако, он предназначен для установки языкового окружения. Причем язык может быть выбран почти любой - от английского и любого другого европейского до тибетского и эфиопского. Присутствует и русский, причем сразу в четырех своих ипостасях - ISO, Alt, KOI-8R и (да простят меня мои незалежные братья по этносу) KOI-8U.

В общем, через окно терминала наглядно можно видеть величие системы emacs, в которой, теоретически, заложены все мыслимые и немыслимые возможности. Которые в чисто консольном варианте замаскированы длинными списками команд. Однако, не смотря на изобилие возможностей, и для непосредственной задачи, то есть ввода текстов, emacs вполне пригоден.

Правда, для этого требуется некоторая привычка. Начать с того, что открытие файла осуществляется не вполне традиционно: при выборе из меню File - Open File внизу окна появляется нечто вроде командой строки с предложением ввести имя открываемого файла. Сделать это не сложно - поддерживается режим дополнения пути с помощью клавиши табулятора.

Если же на приглашение командной строки просто нажать Enter - появляется список файлов и подкаталогов текущего каталога (по умолчанию - $HOME). Который представляет собой отдельный буфер, видимый в их списке (пункт меню Buffers).

Далее с помощью мыши (или, конечно, курсором управления курсором) можно перейти к подкаталогу с требуемыми файлами. Однако открыть этот подкаталог можно, только нажав Enter. После чего появляется содержимое дочернего каталога, также представляющее собой самостоятельный буфер. В результате, при достаточной вложенности подкаталогов, довольно быстро пункт Buffers заполняется всеми этапами пути до требуемого файла. Так что лучше уж принять приглашение командной строки в самом начале...

Правда, после открытия файла никаких сложностей при его редактировании не возникает. Перемещение по тексту происходит обычным для пользователя DOS способом - с помощью клавиш управления курсором, Home и End, PageUp и PageDown, а также мыши; никаких неожиданных эффектов не возникает.

Выделение текстовых блоков - также обычное: мышью, клавишами управления курсором при нажатой клавише Shift; слово можно выделить двойным щелчком мышью. А щелкнув правой клавишей мыши, можно выделить блок между текущей и предшествовавшей позицией курсора.

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

Вставка содержащегося в буфере обмена фрагмента, не зависимо от способа его помещения туда, может быть осуществлена щелчком правой клавиши мыши, через меню (Edit - Paste) или комбинацией клавиш Control+y.

Измененные файлы могут быть сохранены - через пункты меню File - Save Buffer или Save Buffer as. По умолчанию устанавливается также автосохранение файлов. Предупреждаю: если вы закрываете родительское для emacs окно терминала, не сохранив изменений - emacs будет закрыт, и никаких предупреждений о необходимости записи измененных файлов не ждите.

Интерактивных способов настройки emacs не предусмотрено. Такие параметры, как размер и гарнитура экранного шрифта, его цвет и цвет фона, изменяются ручным редактированием файла ~/.Xdefaults (в домашнем каталоге пользователя). Относящаяся к emacs его секция имеет примерно такой вид:

! emacs, xemacs

emacs*Background: DarkSlateGray
emacs*Foreground: Wheat
emacs*pointerColor: Orchid
emacs*cursorColor: Orchid
emacs*bitmapIcon: on
emacs*font: -cronyx-courier-medium-r-*-*-20-*-*-*-*-*-koi8-r
!xemacs*font: -etl-fixed-medium-r-*-*-14-*-iso8859-5
emacs.geometry: 80x25

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

Более сложная настройка emacs (нужно сказать, что возможности таковой - почти безграничны) осуществляется редактирование файла инициализации - ~/.emacs, который представляет собой, в сущности, программу на языке LISP. На нем я останавливаться не буду - это описано в упоминавшейся книге Ричарда Столмена.

Следует упомянуть, что существует и собственно графическая модификация emacs - XEmacs. Однако, кроме внешнего вида, никаких впечатлений о нем получить мне не удалось: программа с регулярностью, достойной лучшего применения, слетала после ввода нескольких слов. Не имею оснований для обобщений - вероятно, это особенность моей системы. Поскольку многие множества пользователей XEmacs применяют - и не жалуются. Однако мне про него сказать нечего...

Vi и emacs - далеко не единственные редакторы для текстового режима. Однако в большинстве своем они продолжают одну из двух этих линий. Хотя есть и самостоятельные программы, которые стоит рассмотреть в рубрике

Прочие консольные редакторы

В числе консольных редакторов, обычно присутствующих в дистрибутивах Linux, можно отметить Joe и Jed

Редактор Joe - многолик. Он способен эмулировать системы команд всех прочих из описанных здесь редакторов - и Vi, и Emacs, и других, о которых я не говорил. Но собственно Joe - это командно-ориентированный, управляемый путем комбинации клавиш ([Control+буква] буква), редактор. Что, как и следовало ожидать, не работает при кириллической раскладке клавиатуры, делая этот редактор малопригодным для работы с объемными русскоязычными документами.

При запуске Joe появляется черный экран, доступный для ввода и редактирования текста. Присутствует также статусная строка, содержащая имя файла, текущие линию и колонку, а также указание для вызова помощи ([Control+k] h); последняя, правда, занимает около трети экрана, но может быть убрана вторичным вводом той же клавишной комбинации.

Редактирование текста основывается на понятии блока и не производит впечатления богатства возможностей. Можно отметить начало и конец блока командами ([Control+b] h) и ([Control+k] k), соответственно, скопировать или переместить его в другое место, а также удалить. Понятия вставки удаленного фрагмента (аналогичного буферу изъятия в emacs) нет.

Интересно, что клавиша Home ведет себя, как в редакторах для DOS, то есть перемещает курсор в начало экранной строки. Подсознательно и от клавиши End ожидаешь "правильного" поведения. Но не тут-то было - вместо этого она вставляет тильду перед позицией курсора. Что крайне раздражает. Хуже этого только необходимость переключаться на латиницу перед выполнением любой rjvfyls. В общем, Joe не показался мне пригодным для использования в мирных целях, по крайней мере в русскоязычной стране.

Текстовый редактор Jed, в отличие от всех описанных ранее - меню-ориентированный, что делает его, казалось бы, более привычным для пользователя, пришедшего из мира DOS/Windows. Во всяком случае, при запуске можно видеть строку меню достаточно стандартного вида - с пунктами File, Edit, Search, Buffers, Windows, System, Help, с выделенными горячими клавишами, активизация которой происходит по нажатии F10, прямо как в Лексиконе.

Однако если Jed был загружен без имени файла, он долго и упорно будет требовать введения такового в командной строке внизу экрана. И на File - Open реагировать не пожелает. Пока не додумаешься выполнить File-Cancel Operation. Только после этого потребный файл можно будет открыть обычным (вернее, привычным) образом.

Дальше - еще интереснее. Ну, то, что ни Home, ни End не работают - ладно, пора уже бы и привыкнуть. Но не работает и delete - удалить введенное можно только клавишей backspace. И меню абсолютно не реагирует на мышь, хотя внутри текста манипуляции мышью осуществляются обычным для Linux-консоли способом.

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

К достоинствам Jed можно отнести возможность работы с несколькими файлами. Что реализуется через новые буферы, аналогично тому, как это сделано в emacs. Можно также работать с двумя (как будто бы, не больше) окнами. В которых может быть открыт один и тот же файл, или разные.

Предусмотрены также различные режимы (кроме основного, текстового) для поддержки различных языков программирования (C, TeX, Forttan и другие; HTML, к сожалению, среди них нет). Однако это не делает Jed более пригодным для решения поставленной перед нами задачи.

Более практичным представляется редактор Pico, входящий в состав широко используемой в Linux почтовой системы pine. Он очень компактен, что позволяет использовать его на слабых машинах. Редактор - командно-ориентированный, все манипуляции в нем осуществляются посредством комбинации Control+буква. Что работает и при кириллической раскладке клавиатуры. Основные клавишные комбинации постоянно присуствуют в нижней части экрана, не требуя чрезмерного напряжения памяти.

Этот редактор не позволяет работать с несколькими файлами или окнами в одной консоли; однако возможна вставка любого числа текстовых файлов с диска в текущий файл.

А так возможности редактирования довольно убоги: можно удалить ([Contol+k], то есть Cut - в том же значении, что и в Windows) строку текста, на которой находится курсор, а затем вставить ее куда либо еще - переместив курсор на новую строку и выполнив команду [Contol+u], то есть UnCut. Есть еще функции поиска, проверки орфографии, а также своеобразно понимаемая опция Justify - вписывание строк, выходящих за границы экрана, в его пределы.

В целом pico, конечно, не очень подходит для работы с объемными текстами. Однако, как мне представляется, почти идеален для правки конфигурационных файлов. Поскольку интуитивно более понятен, чем vi, и много проще в использовании. По крайней мере, для бывших пользователей DOS/Windows.

Хотя еще более привычным для них, вероятно, покажется текстовый редактор, встроенный в файловый менеджер Midnight Commander (о котором шла речь в предыдущей саге). Это, пожалуй, наиболее близкое и родное Linux-создание для старого пользователя DOS. Поскольку напоминает видом редактор из советского народного Командира Нортона, и почти таков же нравом.

Вызывается mcedit, как и редактор NC, по клавише F4, зафиксированной на текстовом файле (можно, конечно, и на любом другом, вопрос только, что вы увидите). Но его можно запустить и автономно, просто набрав mcedit в командной строке: в этом случае открывается пустой файл.

Все в mcedit радует глаз: и привычный синий фон с нерезко белыми буквами, и статусная строка в верхней части экрана, и линейка нумерованных (по функциональным клавишам) операций - внизу. Привычно работают клавиши Home и End, Delete и Backspace; и щелчок мышью в тексте приводит к перемещению курсора в эту позицию. Правда, в отместку за это не работает вставка выделенного фрагмента по щелчку средней клавиши.

Как и в редакторе из Norton Commander, по умолчанию отключен перенос слов на краю экрана; его можно включить - динамически (то есть по ширине экрана) или на фиксированном числе знаков.

Назначение функциональных клавиш также более или менее совпадает. Хотя в MC есть специфика, касающаяся копирования, перемещения и удаления; так, последнюю операцию можно выполнить только через F8, но не через delete.

Выделение текстовых фрагментов - самое разнообразное, и по клавише F3, и мышью, и клавишами управления курсором при нажатом Shift. Правда, не лучшим образом осуществляется копирование и перемещение: если предназначенный для этого фрагмент выделен мышью, курсор в новую позицию можно переместить только стрелками, иначе выделение пропадет. Но зато - есть выделение прямоугольных столбцов.

Приятна также полная русификация программы. И все сочетания управляющих и буквенных клавиш работают как при латинской, так и кириллической раскладке клавиатуры.

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

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

В заключение добавлю, что для mcedit имеется переведенная на русский язык документация, а на сайте http://linux-ve.chat.ru/ можно найти прекрасное описание его возможностей.

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

Средства KDE - Kedit, Kwrite, Katy

Графическая среда KDE включает в себя два штатных текстовых редактора Kedit (именуемый в русском варианте простым) и Kwrite (названный по русски расширенным).

Первый из них - это закаленное и отточенное орудие для набора текстов. И особенно - для их придумывания. Поскольку Kedit содержит большинство функций для набора текстов и их простейшего редактирования: выделение, копирование, вставка, поиск и замена. И - ничего лишнего для их форматирования. А также имеет почти все необходимые и все достаточные настройки.

Манипуляции с текстами в Kedit осуществляются посредством строки меню и инструментальной панели. В последней - кнопки для файловых операций (создание, открытие, запись), редактирования (копирование, вставка, вырезание), печати и почты. Панель, правда, не настраиваемая.

Пунктов меню - три (не считая help): Файл, Редактирование, Настройка. В первом - создание и открытие (в том числе из списка недавних) файла, его сохранение (и под другим именем тоже) и закрытие. Можно открыть файл из удаленного источника и сохранить в таковом. Здесь же - печать, отправка и прием почты, выход. А также - создание нового окна: Kedit - редактор однооконный, для каждого нового документа требуется запустить его отдельную копию.

В пункте Редактирование - копирование, вставка (которая возможна и стандартным способом, средней клавишей мыши) и вырезание, выделение (всего), вставка даты. Здесь же - поиск, замена, проверка правописания, переход на строку.

Настройки - достаточно богаты для такого простого на вид инструмента. Можно настроить гарнитуру шрифта и его начертание, кегль и, при необходимости, кодировку. Поддаются переопределению цвета шрифта и фона (можно выбрать их стандартной палитры или назначить собственный), параметры Spellchecker'а (выбор словаря и кодировки, по умолчанию используется стандартные для ispell), граница (в знаках) для переноса слов и т.д. Для сохранения установок в следующем сеансе их следует запомнить (подпункт Записать установки).

В общем, инструмент более чем пригодный для набора текстов. Из принципиальных недостатков я отметил бы только отсутствие возможности делать закладки в тексте, и отстутствие функции Undo/Redo. Навигация несколько затруднена невозможностью перейти в начало или конец текста (например, с помощью привычных клавиш Control+Home и Control+End). Не предусмотрен многооконный режим - для работы с несколькими документами нужно открывать соответствующее количество экземпляров программы. Нет также подсветки синтаксиса, но это уже - из области роскошного.

Редактор Kwrite чрезвычайно сходен по интерфейсу с Kedit. Название редактора Kwrite вызывает ассоциацию с приснопамятным по временам Windows 3.xx Write. Однако функционально он отличен от редакторов общего назначения типа Kedit, поскольку предназначен для написания не столько просто текстов, сколько текстов исходных.

С точки зрения интерфейса Kwrite очень сходен с Kedit, обнаруживая строку меню и панель кнопок (рис. 11). Пункты меню почти те же - Файл, Редактирование, Настройки, плюс Закладки.

В пункте Файл - создание, открытие (в том числе Open Recent) и сохранение (в том числе Save as), печать, Новое окно (открытие пустого окна) и Новый вид (открытие второй копии того же документа в новом окне): как и Kedit, Kwrite не является многооконным редактором в полном смысле слова, требуя отдельного своего экземпляра для каждого файла. Кроме того, есть вставка существующего файла в текущий. Ну и выход, конечно.

В пункте Редактирование - стандартные Вырезать, Копировать, Вставить, а также Undo и Redo (отсутствующие в Kedit), поиск, замена, переход на строку. Кроме того, здесь есть ввод отступа строки и и его отмена, и всякого рода выделение (всего, отмена и обращение выделения).

Добавленный против Kedit пункт Закладки содержит три очевидные подпункта - установка, добавление и уничтожение закладок.

А вот настройки в Kwrite существенно отличаются от таковых в Kedit. Перво-наперво, в нем можно установить раскраску синтаксиса какого-либо языка - C, C++, Java, HTML и т.д. Далее, в подпункте По умолчанию устанавливаются гарнитура, размер, кодировка и цвет шрифта, как для нормального текста, так и для различных типов данных. Затем - Раскраска, где настраиваются цвета для языковых конструкций. Так, если ранее была выбрана раскраска HTML, здесь можно определить цвета не только для тэгов, но и для атрибутов и их значений, в результате чего html-код может принять сколь угодно пестрый вид.

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

Еще одна очень интересная возможность - изменение символа конца строки: помимо свойственного Unix LF, можно установить DOS'овский CR-LF или Mac'овский CR.

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

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

Из обзора возможностей Kwrite и его настроек видно, что это типичный редактор для программиста. Что подчеркивается, скажем, отсутствием функции проверки орфографии и даже печати. Однако и для набора длинных связанных текстов он вполне пригоден. А орфографию можно всегда проверить и в любой внешней программе, просто в ispell, наконец.

Кроме штатных, для работы в KDE предназначен такой редактор, как Katy - очень простой, но удобный. Его отличительная особенность - многооконность, переключение между загруженными документами осуществляется с помощью закладок.

Текущая версия Katy (0.2.3), вероятно, еще не вполне функциональна. Об этом можно судить по тому, что разработчиками он позиционируется как аналог такого редактора для Windows, как UltraEdit, но существенно не дотягивает до него по своим возможностям.

Интерфейс Katy достаточно стандартен для KDE-приложений. Управление осуществляется через меню или почти дублирующую его функциональную панель. В меню - пункты:

  • File, содержащий стандартные операции с файлами (создание, открытие, сохранение и прочие, включая печать); здесь привлекает внимание возможность сохранения всех открытых файлов (Save All), а также установка конца строки - с стиле Unix, DOS или MacOS;
  • Edit, также достаточно обычен по набору функций (Undo и Redo, копирование, вырезание и вставка, поиск и замена); стоит отметить только возможность принудительного переключения регистров (с нижнего на верхний и наоборот, а также инвертирование);
  • View - это просто переключатели скрытия/показа инструментальной панели и статусной строки;
  • Options - минимальные настройки (гарнитура и кегль шрифта, его кодировка, величина табуляции).

Полезно, что закладка каждого измененного, но не сохраненного файла маркируется звездочкой.

Из недоработок бросаются в глаза отсутствие переноса слов и подсветки синтаксиса, что весьма необычно для редактора, претендующего на статус развитого. Кроме того, Katy не может похвастаться и стабильностью.

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

Прочие редакторы для системы X Window

Здесь я упомянул бы Cooledit - известный текстовый редактор для программистов. Он имеет собственный десктоп-менеджер, способный изменить вашу рабочую среду до неузнаваемости, причем не всегда спрашивая позволения. Для набора текстов, по моему, не это лучший инструмент, но располагает богатыми возможностями для редактирования текстов исходных, скриптов, макросов и прочего.

Очень обширно семейство текстовых редакторов для GNOME (или просто базирующихся на библиотеке Gtk). Здесь можно назвать и gEdit, и gnotepad+, и CodeCommander, и Latte, и еще несколько. Многие из них обладают очень развитыми функциями редактирования, например работы с разметкой HTML. Однако я ими не пользовался - во-первых, как уже неоднократно говорил, почти все Gtk-приложения у меня работают неустойчиво, во-вторых, мне просто не нравится интерфейс GNOME-ориентированных программ.

Несколько подробнее я хотел бы остановиться на fte. Это весьма своеобразный текстовый редактор, совмещенный с чем-то вроде файлового навигатора. При запуске его появляется дерево каталогов. Перемещаться по нему довольно удобно, но никаких собственных средств управления файлами, вроде копирования, удаления, перемещения и прочего, нет. Однако есть возможность вызова минитерминала (Control-F9), появляющегося внизу окна fte. В нем все эти функции доступны, также как и в любой оболочке. Правда, не поддерживается ни история команд, ни дополнение клавишей табулятора.

Двойной щелчок на имени файла (или выбор пункта Open из меню по нажатию правой клавиши мыши) вызывает собственно текстовый редактор. Возможности его довольно богаты. Пункт File, в соответствие со своим названием, содержит всякие файловые манипуляции: открытие, сохранение, печать и прочее; в том числе - открытие файла в определенном режиме - текстовом или режиме различных языков программирования, в числе коих обнаружился и HTML, и TeX; впрочем, выбор режима автоматически (и правильно) происходит при открытии файла; так, при открытии html-файла включается цветовая подсветка тэгов.

В пункте Edit, помимо Undo и Redo (кстати, многоуровневых), содержались операции с текстовыми фрагментами - копирование, вырезание вставка различного вида. А маркировка этих фрагментов - в пункте Block; помимо обычного выделения линий и абзацев, можно выделить вертикальные колонки. Здесь - же установка автоотступов, конвертирование регистров, сортировка и прочее.

Из прочих, весьма многочисленных, пунктов меню привлекает внимание пункт Options: здесь можно запретить или разрешить перенос слов, установить левую и правую границы, величину табуляции, а также изменить режим просмотра документа.

Стандартное меню может быть дополнено собственными командами посредством редактирования конфигурационных файлов.

В общем, конечно, fte - это, конечно, редактор в первую очередь для программиста. Однако и просто для набора текстов он вполне пригоден. А подсветка синтаксиса HTML позволяет применять его для предварительной разметки web-страниц.

А под занавес истории о текстовых редакторах не могу отказать себе в удовольствии рассказать о том из них, который, на мой взгляд, наиболее близок к очерченному во вступлении идеалу. Имя ему

Nedit - на пути к идеалу

Редактор Nedit реализован для всех Unix- и Unix-подобных систем, как коммерческих, так и свободных. Он доступен на http://www.nedit.org/, последняя версия (5.1.1) - в виде исходных текстов, предыдущая (5.0.x) - также и как бинарные пакеты.

Nedit базируется на библиотеке Motif, имеющей статус коммерческой. Однако для Linux он может быть скомпилирован с использованием свободного аналога этой библиотеки - OpenMotiff. Кроме того, распространяемые бинарные пакеты (rpm и deb) компилируются статически, то есть без необходимости установки каких-либо специфических библиотек вообще.

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

Однако по сведениям, полученным от моих корреспондентов, проблем в этом отношении, как будто, быть не должно. Я попробовал разобраться, в чем дело - и безуспешно. Тогда как последнее средство, я решил, установив предварительно OpenMotof, собрать пакет из исходных текстов (раньше я устанавливал его из статически скомпилированных rpm-пакетов) - и вставка средней клавишей мыши волшебным образом появилась. После чего понял, что могу описывать его со спокойной совестью.

В отличие от Kedit и Kwrite, Nedit управляется исключительно через меню: инструментальная панель отсутствует, что кому-то может показаться и недостатком (мне - так нет, это компенсируется достаточным количеством горячих клавиш). Главное меню насчитывает, за исключением непременного Help, семь пунктов:

  • File - это в основном обычные действия, как то: создание, открытие файла, в том числе - из списка последних, запись, ну и все такое прочее; о чем стоит сказать, как об уникальных особенностях - так это о пунктах Revert to Saved (это отмена изменений в уже записанном файле) и Include File (это вставка некоего существующего файла в текущий документ);
  • Edit - также достаточно тривиально, это всякого рода выделение, копирование, вырезание, вставка; здесь привлекают внимание конвертация регистров (Lower Case и Upper Case), а также подпункт Fill Paragraph, конденсирующий абзацы в соответствие с принятыми правилами переноса слов (о чем - через пару пунктов);
  • Search вполне заслуживает выделения в отдельный пункт главного меню, поскольку возможности поиска, да и замены, чрезвычайно широки; здесь же - создание закладок и переход к ним;
  • Preferences - понятно, что это настройки, о которых я подробнее расскажу ниже;
  • Shell - достаточно необычный пункт меню текстового редактора: здесь можно просто запустить на исполнение любую команду или программу (подпункт Execute Command, вызывающий нечто вроде минитерминала), определить в качестве команды на запуск строку из текущего документа (Execute Command Line); тут же - проверка правописания, подсчет слов и строк, сортировка и прочее, включая сборку программы из набранного исходного текста;
  • Macro - этот пункт предназначен для запуска пользовательских макрокоманд; Nedit поддерживает собственный макроязык, довольно подробно описанный в справочной системе;
  • Windows позволяет расщепить текущее окно на два и более фрейма; в каждом из них будет своя, независимо прокручивающаяся, копия одного и того же текущего файла; кроме того, здесь же можно переключаться между всеми открытыми в документами; Nedit, в отличие от Kedit и Kwrite, истинно многооконный редактор: хотя каждый из открытых файлов существует в собственном окне со всеми его атрибутами (строкой меню, полосами прокрутки и прочим), все они присутствуют в едином списке окон и имеют одни и те же параметры настройки.

Кроме главного меню, существует и меню контекстное, вызываемое, как положено, щелчком правой клавишей мыши на выделенном фрагменте текста. Правда, оно достаточно простое, содержа лишь пункты Undo и Redo, Cut, Copy и Paste, что в комментариях не нуждается.

Таким образом, функциональность Nedit в первом приближении ясна из рассмотрения меню. Посмотрим, какова же его настраиваемость, для чего вернемся к пункту Preference.

Здесь можно отдельно настроить опции текущей сессии и параметры редактора по умолчанию. Начнем с первых. Это:

  • переключатели показа/скрытия статусной линии (где отображается, в том числе, полный путь до текущего файла, поддающийся выделению мышью, копированию и вставке в любой другой документ), линии избирательного поиска (Incremental Search Line) и нумерации строк в документе;
  • режим языка (в смысле - программирования, а не человеческого); в списке доступных, не считая чисто текстового (Plain) - C и C++, Java и JavaScript, Ada, Fortran, Pascal, Python, Tcl, awk, язык командных оболочек линии bash, языки разметки HTML и TeX, PostScript, SQL и прочая, и прочая, и прочая; разумеется, есть и режим собственного языка NEdit Macro;
  • включение/выключение автоотступов и переноса слов; в последнем подпункте предусмотрены опции - без переносов, автоматически по границе открытого окна, по заданному числу знаков, а также непрерывное; в этом случае экранная (не истинная) строка разрывается на границе окна без образования нового абзаца, подобно тому, как это происходит в emacs;
  • установка экранных шрифтов; выбрав этот пункт, можно определить гарнитуру исходного шрифта вводом вручную или выбором из списка; в последнем случае необходимо явным образом отметить все три доступные для выбора атрибута - Font, Style и Size, иначе последует сообщение о некорректном определении шрифта; что характерно (вернее, не характерно для редакторов такого типа) хотя по умолчанию в списке присутствуют только моноширинные шрифты, можно включить также показ шрифтов пропорциональных, и использовать их в свое удовольствие;
  • включение/выключение подсветки синтаксиса, в соответствие с определенным выше языковым режимом;
  • включение/выключение режима создания резервных копий;
  • переключатель для подсветки открывающей скобки при фиксации курсора на закрывающей, и наоборот.

Из этого, несколько, возможно, сумбурного, описания, можно понять, что в Nedit поддается настройке практически все (а что не настраивается через меню - на то есть другой способ, о котором чуть позже). Однако все описанные выше установки имеют силу только в текущем сеансе Nedit. Чтобы сделать их перманентными, нужно зайти в пункт меню Preferences - Default Settings, в котором нам будет предложен абсолютно тот же, хотя и слегка перетасованный, список опций и переключателей. Настроив его по собственному разумению, следует вернуться к пункту Save Defaults... для сохранения изменений - далее быть спокойным: при следующем запуске Nedit все будет, как доктор (то бишь my self) прописал...

Правда, через меню удается настроить не все, что может понадобиться впредь. В частности, здесь не удается прикрутить проверку орфографии для русскоязычных текстов. Однако на это есть метод левой резьбы - файл ресурсов .nedit в домашнем каталоге пользователя. Начальная его секция, отвечающая за пункт меню Shell, выглядит примерно так:

nedit.shellCommands: \
	spell:Alt+B:s:EX:\n\
		cat>spellTmp; xterm -e ispell -x spellTmp; cat spellTmp; rm spellTmp\n\
	wc::w:ED:\n\
		set wc=`wc`; echo $wc[1] "lines," $wc[2] "words," $wc[3] "characters"\n\
	sort::o:EX:\n\
		sort\n\
	number lines::n:AW:\n\
		nl -ba\n\
	make:Alt+Z:m:W:\n\
		make\n\
	expand::p:EX:\n\
		expand\n\
	unexpand::u:EX:\n\
		unexpand\n

Достаточно в строке, относящейся к спеллингу, добавить после ispell параметр -d russian (предписывающий обращаться при проверке именно к русскому, а не какому иному, словарю), - и все будет в порядке: обращение к пункту Shell - spell будет отныне и вовек вызывать русский вариант программы ispell в собственном окне терминала (параметры которого, как нетрудно догадаться, описываются в той же строке конфигурационного файла) со всеми последующими действиями (о которых - в заключительном разделе этой саги).

Конечно, значение секции shell в файле ./nedit (как и следующей за ней секции macro) много шире: никто не мешает добавлять в любую из них собственные команды и конструкции (в первую - на языке командной оболочки и на собственном макроязыке Nedit - во вторую), наращивая функциональность соответствующих этим секциям пунктов меню...

А еще через меню (и через файл ./nedit - тоже) не удается настроить цвет фона, текста меню, курсора, геометрию открываемого окна и т.д. Все это, конечно, можно при необходимости указывать в командной строке при запуске. Однако, если такая настройка вам представляется необходимой, а указывать параметры лениво, можно обратиться к файлу .Xdefaults в своем пользовательском каталоге. Секции nedit в нем по умолчанию нет, но создать ее - труда не составит (хотя бы средствами того же Nedit), придав ей вид вроде

! nedit

nedit*Background: SlateGray
nedit*Foreground: Wheat
nedit*pointerColor: Orchid
nedit*cursorColor: Orchid
nedit*bitmapIcon: on
!nedit*font: -cronyx-courier-medium-r-*-*-20-*-*-*-*-*-koi8-r
nedit.geometry: 80x25

или указать какие-либо иные параметры, по собственному желанию.

Из приведенного описания видно, что по своим возможностям и настраиваемости Nedit вплотную приближается к emacs (а учитывая возможность сколь угодно широкого наращивания функциональности пунктов меню Shell и Macro - возможно, и не уступает). В то же время он предоставляет пользователю удобный и привычный интерфейс, лишенный архаических особенностей как emacs, так и vi.

К недостаткам Nedit (или, вернее, особенностям, которые могут не нравится), можно отнести отсутствие инструментальной панели и открытие каждого файла в собственном окне (а не в том же самом, с перемещением через систему закладок, например). Впрочем, и тот, и другой момент - спорны: отстуствие панели, как я уже говорил, компенсируется системой горячих клавиш, а перемещение между отдельными окнами, на мой взгляд, не менее удобно, чем между закладками.

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

Короче говоря, если Nedit и не отвечает в полной мере идеалу текстового редактора, то вплотную к нему приближается. На мой взгляд, это один из лучших редакторов вообще и, пожалуй, лучший на платформе Linux. Дополнительное достоинство его - отсутствие привязки к конкретной графической среде (типа KDE или GNOME) и представленность во всех Unix-системах.

В общем, этот редактор мне так понравился, что я без тени сомнения добавил его в список любимых программ, о которых, как и о любимых женщинах, буду помнить всегда. Надо сказать, что за десять лет околокомпьютерной жизни список этот (программ, не женщин) отнюдь не велик. Ранее в нем были QuattroPro для DOS (не для Windows) от электронных таблиц, Lotus AmiPro - от текстовых процессоров, Surfer в обоих своих (DOS и Windows) ипостасях, ну и еще пара-тройка. Теперь в этом списке - и Nedit.

Подводя итог всему разделу, замечу: инструментов для создания текстов под Linux - вдоволь, и всегда можно выбрать подходящий. Так и дело обстоит с оформлением созданных текстов? Для этого нужно рассмотреть

Текстовые процессоры

Здесь материалов будет существенно меньше. Во-первых, текстовых процессоров под Linux просто меньше, чем текстовых редакторов. Во-вторых, самые могучие из процессоров, по доброй традиции последних лет, выступают не самостоятельно, а в составе офисных комплектов, которые будут предметом следующей саги. И в третьих, многие программы, которые могли бы занять достойное место в этом разделе, находятся в процессе разработки и не могут считаться пока полнофункциональными.

Каково, на мой взгляд, предназначение текстового процессора? От ответа на этот вопрос будет зависеть и их оценка, а потому задержусь на нем чуть подробнее.

Можно наметить три сферы приложения текстовых процессоров:

  • первая - делопроизводство, то есть составление документов, которые должны быть оформлены в соответствие с определенными, обычно жесткими, требованиями;
  • вторая - объединение и доведение до кондиционного вида неких материалов, подготовленных в текстовых и графических редакторах:
  • третья - использование текстовых процессоров как универсального средства работы с текстовой информацией.

Рассмотрим их по очереди, начав с последней; поскольку именно для этого применяются текстовые процессоры подавляющим большинством пользователей, во-первых, и потому, что именно на это ориентированы все развитые коммерческие их представители - во-вторых.

Мне представляется, что это - самый нерациональный подход, который только можно себе представить. Почему - нетрудно ответить. Как известно, пятиборцы (да простят меня представители этого, очень мной любимого, вида спорта) - это те, кто все умеет делать. Плохо. И потому ожидать, что программа будет одинаково хорошо выполнять столь противоречивые функции, как просто ввод текста и его редактирование, форматирование, вставку рисунков и таблиц с их точным позиционированием (а подчас и обработку, и даже подготовку иллюстраций), сравнение версий с точки зрения содержания и оформления - было бы наивно. Каждый, кто пробовал набирать текст в PageMaker или верстать оригинал макет в Word - вероятно, спорить со мной не будет. Во всяком случае, то, что книжки, сверстанные в Word, безошибочно опознаются с первого взгляда (и не своими высокими оформительскими достоинствами) - медицинский факт, как сказал бы О.Бендер.

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

Хотя, справедливости ради, нужно заметить: такой цели - приблизиться к идеалу - перед этими продуктами создатели и не ставили. Ведь основное, я бы сказал - сакральное, предназначение коммерческих офисных приложений - облегчение не труда, а кошелька пользователя. Первейшая обязанность которого, как известно - постоянные upgrade аппаратуры в соответствие с требованиями нового софта...

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

Обработка с точки зрения содержания требует средств редактирования - раз, и средств сравнения и контроля версий - два. Первая задача достаточно успешно решается, не выходя за рамки текстовых редакторов. Вторую, значение которой при коллективной работе трудно переоценить, теоретически также можно попробовать решить средствами текстовых редакторов, по крайней мере наиболее развитых. Однако это потребует дополнительных усилий - штатные средства такого рода в них мне неизвестны. И потому функции контроля и коллективной работы - это единственное, что хоть как-то примиряет меня с программными монстрами типа Word или WordPro. Благо самому этими средствами пользоваться почти не приходится...

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

Наконец, сфера делопроизводства. Речь идет, разумеется, не о документообороте министерства или транснационального концерна. А о тех планах, отчетах, этапах, сметах, служебных записках, которые каждый из нас пишет но сто раз на дню и имя которым - легион. Ведь, как доказано практикой, повсеместное внедрение электронного документооборота привело к росту документооборота бумажного в геометрической прогрессии. Что понятно: раньше, чтобы напечатать бумагу в трех экземплярах, нужно было напрячься и каждый лист проложить копиркой, а сейчас - отправил на принтер хоть сто копий - "и сидишь себе, болтаешь ножками, сам сачкуешь, а она работает" (А.Галич).

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

Ted как орудие бюрократа и головотяпа

О чем - в продолжении, которое, как всегда, следует

Lyx и Klyx, а также немного про TeX

Клавиатурные раскладки, кодировки, шрифты, спеллинг

В начало

Copyleft by
Alex Fedorchuk
http://linuxsaga.newmail.ru/