Emacs для начинающих

       

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 - вдоволь, и всегда можно выбрать подходящий. Так и дело обстоит с оформлением созданных текстов? Для этого нужно рассмотреть


Содержание раздела