Вводные замечания
Пользователи Windows в качестве универсального средства для работы с текстами в большинстве случаев используют программы, именуемые word-процессорами. Однако в POSIX-системах именно редакторы - традиционный инструмент всех Unix-систем.
Все текстовые редакторы POSIX-мира можно разделить на два класса - редакторы командного стиля и меню-ориентированные редакторы. В первых навигация по тексту и его обработка осуществляется отдачей прямых директив, вроде: перейти на пять слов вперед, удалить пятую снизу строку, заменить строку номер пятнадцать и т.д. Действия в меню-ориентированных редакторах, как и следует из названия, осуществляются более интерактивно (и - более привычно для пользователя Windows-редакторов).
Разделение редакторов на командные и меню-ориентированные, отчетливо выраженное для консольных представителей этого семейства, несколько сглаживается при переходе к работе в графическом режиме. Потому что в Иксах даже типичные командные редакторы обретают часто (при соответствующих опциях сборки) элементы визуального интерфейса. Однако командная сущность gvim или kvim не меняется от того, что они обретают меню в стиле Gtk или KDE, соответственно. А, например, NEdit являет собой вполне гармоничное сочетание командного и визуального стилей редактирования - хотя без соответствующих настроек об этом можно и не догадаться.
Текстовые редакторы обладают рядом преимуществ перед процессорами - по крайней мере, в той области, для которой они предназначены, то есть при создании и обработке текстов. Главное из них - это универсальность. Поскольку выходной материал в редакторах представляет по определению чистый ASCII-файл, он может быть прочитан в любой среде и на любой платформе, не требуя специальных конвертеров (и, тем более, программ, в которых этот материал создавался). Что особенно важно для документов с символами кириллицы. Кроме того, с помощью редакторов можно готовить html-страницы, осуществлять верстку документов для TeX, править конфигурационные файлы, писать исходники программ и многое другое.
Кроме того, редакторы существенно удобнее процессоров для составления длинных структурированных текстов нарративного характера. Каковое, особенно при претензиях на оригинальность, требует сосредоточенности, трудно достижимой при изобилии форматирующих возможностей процессоров. Впрочем, это - мое субъективное мнение. Однако остается фактом, что подготовленный в редакторе документ в дальнейшем может быть трансформирован в любой текстовый процессор или систему верстки, где его можно подвергать любому оформлению.
Сказанное выше относится ко всем текстовым редакторам, как командным, так и визуальным. Тем не менее, и внутри этого семейства первые имеют определенные плюсы по сравнению со вторыми. Последние, конечно, легче в освоении, особенно при эпизодическом использовании. Однако при превышении некоего минимального уровня практических навыков командные редакторы обеспечивают много большую скорость работы. Доказать это количественными измерениями довольно сложно (поскольку определяется пресловутым человеческим фактором), но имеющие соответствующий опыт, думаю, со мной согласятся. Остальных же прошу поверить на слово - все сказанное выше опробовано на собственной шкуре и выстрадано годами создания текстов самого разного объема, характера и назначения.
Следует заметить, что большинство традиционных Unix-редакторов принадлежат к командному классу. Среди его представителей, с одной стороны, - наиболее простые и легковесные (с точки зрения требований к ресурсам) программы. К ним принадлежит, например, редакторы nano и ee, описанные в ближайших разделах.
С другой стороны, именно командными редакторами являются наиболее мощные инструменты комплексной обработки текста, такие, как vi (вернее, его современная модификация - vim) и emacs.
Наконец, существует категория редакторов, занимающих по своей функциональности промежуточное положение между мощными средствами типа vim и emacs, и совсем простыми редакторами класса nano. Среди них - типично командный редактор для консоли - joe.
Чем же руководствоваться при выборе редактора? Как известно, всякому овощу - свой фрукт. И если стоит задача достижения максимальной функциональности - с emacs или vim мало кто в состоянии конкурировать (не зря же emacs удостоился звания операционной среды - того же титула, который некогда присвоила Microsoft своему перлу, Windows 3.x). При потребностях более скромных (и преимущественно - не программерских) есть смысл присмотреться к редакторам промежуточной группы. А вот если основная задача выбираемого редактора - правка конфигурационных файлов, возникает вопрос - а почему бы не ограничиться программами легчайшей весовой категории?
К тому же проблема выбора редактора, как и все в жизни, имеет оборотную сторону: чем богаче возможности, тем больше времени требуется на их освоение. А если претензии на первое время невелики, но это самое первое время - ограничено, выбор редакторов-легковесов как бы напрашивается.
Поэтому в настоящей главе будут кратко охарактеризованы простейшие редакторы nano и ee, выполняющие роль инструментов конфигурации во многих дистрибутивах Linux и в BSD-системах-соответственно. Столь же кратким будет введение в работу с vim - потому что это то средство, которое гарантированно будет под рукой в любой Unix-системе. И, наконец, подробному рассмотрению подвергнется joe - самый мощный из консольный редакторов промежуточной категории.