Алексей Федорчук
Текстовый редактор -- один из основных инструментов Linux-применителя, вне зависимости от сферы его деятельности: он в равной степени необходим программисту и сисадмину, веб-мастеру и блогеру, а также массе трудящихся, чья сфера деятельности с IT никак не связана: "традиционным" журналистам, писателям и поэтам, редакторам и переводчикам, научным работникам... короче говоря, всем работникам профессий, которые в советское время было принято называть творческими. И всем, чьё творчество связано со СЛОВОМ.
Правда, за исключением первых трёх категорий, большинство творческих работников об этом и не подозревают -- за исключением, конечно, тех немногих из них, кто в одной из своих прошлых жизней каким-то боком не пересекался с IT-сферой. А потому, сочиняя свою нетленку или прелагая чужую, они обычно пользуются таким неуклюжим инструментам, как word processor (которые по русски почему-то называются текстовыми процессорами, хотя на самом деле text processor -- это нечто совсем иное). И неважно, как этот инструмент называется -- MS Writer'ом, AOo Writer'ом, Libre Writer'ом или даже AbiWord'ом -- важно, что все они разрабатывались для изготовления бюрократических циркуляров, а не для творческой работы с нарративными текстами.
Разумеется, представители клана творческо-технологического, в частности, линуксописатели (в том числе и автор этих строк), предпринимали предпринимали многочисленные попытки изменить существующее положение дел, открыв глаза собратьям по клану творческо-гуманитарному на мощь и величие текстовых редакторов вкупе с набором несложных утилит командной строки, таких, как cat
, split
, find
, grep
etc., или их графических фронт-эндов. Попытки эти, за небольшими частными исключениями, терпели фетяску. В том числе и потому, что многие из них предпринимались с негодными средствами, но к этому вопросу я ещё вернусь в заключительных строках.
А пока -- об очередной попытке сеяния разумного, доброго, вечного, предпринятой Сергеем Голубевым в виде цикла статей Vim для простого человека, опубликованным в PCWeek (общее оглавление и "сухой остаток" -- здесь) . Она существенно выходит за рамки означенной в заголовке темы. Предваряясь, во-первых, общим обзором текстовых редакторов, а во-вторых, интересным психологическим экспериментом -- как выбор редактора влияет на скорость создания текста. Собственно, на эти темы я и хотел бы поговорить в первую очередь. Потому как первоначально настоящая заметка возникла как комментарии к указанным материалам, которые разрослись... ну до того, что вы в данный момент видите на этой и следующей страницах.
Статью BYOD c Linux: текстовые редакторы я хотел бы просто немного дополнить. Поскольку нельзя объять необъятное (а тема текстовых редакторов более чем необъятна), Сергей в своём списке привёл далеко не все имена, достойные упоминания. Кстати, я на создание всеохватного списка тоже не претендую. Тем не менее, в группе консольных редакторов полагаю необходимым вспомнить о joe
. Это, как и Vim или Emacs, редактор чисто командного стиля. Считается, что он функционально далёк от первых двух монстров. Однако его штатных возможностей почти достаточно применителю-текстовику (не программисту). Самое же главное -- недостающий функционал легко восполняется макросами, создание которых не требует ни малейших навыков программирования: достаточно включить режим протоколирования, выполнить необходимые действия из числа регулярно требующихся (например, ввод html-тэгов), записать их последовательность и привязать к каким-либо горячим клавишам (подробности здесь).
Единственным, но, на мой взгляд, существенным недостатком joe
является отсутствие режима wrapping'а -- то есть "визуального" переноса слов, без образования новой строки. Для применителя-текстовика это очень важно: в отличие от программиста, он мыслит не строками, а стилистическими конструкциями. В том числе и при поиске нужных фрагментов текста. И если такая конструкция разрывается символом перевода каретки -- это очень мешает.
Этого недостатка лишён nano
-- в нём режим wrapping'a задать либо как опцию команды запуска, либо прописать к конфиге. До недавнего времени он не заслуживал даже упоминания в ряду "грандов" редакторского мира. Однако ныне он весьма развился, хотя до функционала joe далеко не дотягивает, и не поддерживает макросы. Тем не менее, он вполне подходит для сочинителей небольших рассказиков, очерков или заметок.
А что же требуется тем, кто сочиняет объёмные повествовательные материалы? Хотя бы серию заметок или статей в рамках одной темы, не говоря уже о книге, когда приходится работать с серией текстовых документов, часто не просто большой, но очень большой -- как по объёму, так и по количеству. И тут, как ни странно, оказывается, что требования к текстовому редактору со стороны применителя-текстовика часто пересекаются с таковыми разработчика. Каждому программисту, сочиняющему что-либо посложнее Hello, world!, с некоторым, иногда большим, числом файлов, предназначенных для реализации одной задачи. И потому обоим нашим героям от текстового редактора требуется средства управления проектами.
Программисты находят решение своей проблемы в применении всякого рода IDE, то есть интегрированных сред разработки. Интегрированных сред для сочинительства нарративных текстов ещё никем не придумано. Но в этом качестве отлично могут выступить программы, которые лежат на грани между продвинутыми текстовыми редакторами и простенькими IDE. А вот их список оказывается очень коротким. Если исключить практически сошедший со сцены NEdit и его клон QEdit, так на эту сцену и не вышедший (в причины обоих явлений вдаваться не буду), то он сведётся к полутора позициям: Geany за номером один и Kate за номером полтора.
Почему так? Да потому, что, хотя в Kate собственно средства управления проектами появились едва ли впервые среди текстовых редакторов такого рода (апологеты Vim и особенно Emacs, подождите немного), по сию пору остаются в зачаточном состоянии. Хотя этот редактор несравненен по части управления файлами, но это -- лишь одна из сторон проектного менеджмента. Тогда как в Geany, хотя по части управления файлами и отстал, все остальные аспекты управления проектами развивались со страшной научно-фантастической силой. И ныне этот некогда просто текстовый редактор именуется обычно лёгкой IDE. Хотя именно вследствие своей лёгкости, то есть -- не перегруженности чисто программистскими фичами, он идеально подходит на роль основного инструмента применителя-текстовика.
А что же Emacs и Vim? -- спросите вы меня. Отвечаю: это те самые попытки с негодными средствами, о которых я упоминал в начале этой страницы. Да, и из того, и из другого мострактора (монстроидального редактора) можно сделать интегрированную среду для разработки любого рода текстов -- от исходников до "нарративников". Но её придётся делать, затрачивая силы и время. А подчас ещё и приобретая по ходу дела некие специфические навыки, например, для Emacs'а -- программирования на Lisp. Навыки, которые применителю-текстовику больше никогда и нигде не понадобятся.
Поэтому меня умиляет, когда на всяких форумах на вопрос о выборе текстового редактора технологически продвинутые граждане в качестве универсального решения предлагают Vim/Emacs (в зависимости от своей религиозной ориентации). Для меня это просто показатель непонимания означенными гражданами специфики сочинительской работы. А ведь профессиональный сочинитель воспримет (и воспринимает) такой совет как форменное издевательство. Ибо в том же Geany он мог бы иметь всё ему необходимое "искаропки" -- хотя он об этом пока и не подозревает.
Это -- что касается выбора редактора. А о втором аспекте поднятой Сергеем темы, психологическом, я скажу на следующей странице.