Информационные технологииStfw.Ru 🔍

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

Cовсем начинающим пользователям FreeBSD посвящается Алексей Федорчук
🕛 02.12.2008, 18:25
Редактор ee (Easy Editor) представляет собой штатное средство для работы с текстами во FreeBSD. Он входит в состав базовой системы (Distributions) и, собственно, является там чуть не единственным представителем этого семейства. Не считая, конечно, классического vi, который, однако, а) функционально ограничен (сравнительно с современным Vim) и б) поначалу не особенно легок в использовании. Так что на первом этапе освоения FreeBSD ee вполне может быть естественным выбором. Особенно если учесть, что, при всех своих ограничениях, о которых я скажу позднее, он, подобно большинству штатных средств FreeBSD, не так уж прост и незатейлив, как кажется на первый взгляд. Это делает его более чем пригодным для правки конфигурационных файлов как на начальном этапе настройки FreeBSD, так и в дальнейшем, например, при всякого рода аварийных ситуациях. А что ещё требуется от текстового редактора "легкой весовой категории"?

Поскольку ee представляет собой неотъемлемый компонент базовой системы, исполняемый его файл имеет своим местопребыванием каталог /usr/bin/, всегда входящий в состав переменной path любого пользователя. Так что запускается этот редактор просто - одноименной командой

% ee filename

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


Предусмотрен и запуск ee с опциями командной строки, такими, как:
* -e - отключение преобразования символов табуляции в пробелы; * -i - отключение информационного окна со справкой; * -h - отключение подсветки рамок вокруг информационного окна; кроме мифического повышения производительности на некоторых терминалах, это придаёт редактору более строгий вид; * +# - перемещение курсора к строке с указанным номером # при открытии файла, что полезно при редактировании конфигов.

Навигация по тексту осуществляется или обычным способом - клавишами управления курсора, PageUp, PageDown, Home, End и т.д., либо - специфичными для ee управляющими (или командными) комбинациями клавиши Control с какой-либо из литерных. Так, комбинация Control+f (от forward) перемещает курсор на один символ вправо (т.е. вперед), Control+b (от backward) - на один символ влево (т.е. назад), и так далее. Причем возможности управляющих комбинаций шире - например, они позволяют перейти к следующему слову (Control+z), перейти в начало (Control+t) или конец (Control+u) экрана.

Аналогично и редактирование текста можно выполнять двояким образом: посредством клавиш редактирования (Backspace, Delete) или такими же управляющими комбинациями. Причем последний способ, как и в случае навигации, - более эффективен, позволяя удалить не только отдельный символ (Control+d), но и целиком слово (Control+w) или строку (Control+k).

Редактор ee с точки зрения интерфейса является гибридным, и все основные действия могут быть выполнены в нём тремя способами: с помощью управляющих клавиш, о которых только что говорилось (и более подробные сведения о которых можно почерпнуть из man ee), через меню или прямыми командными директивам.

Главное меню редактора вызывается нажатием клавиши Escape. Пункты его - следующие:
* a) выйти из редактора; * b) подсказка; * c) операции с файлами; * d) обновить экран; * e) параметры; * f) поиск; * g) разное.

Каждый из указанных пунктов вызывает панель соответствующих подменю. Выбор требуемого пункта осуществляется клавишами управления курсором (Down и Up) или нажатием соответствующей литерной клавиши (например,a - для выхода из редактора). Последнее, впрочем, работает только при латинской раскладке клавиатуры. Выход из меню осуществляется повторным нажатием клавиши Escape. Та же клавиша в любом из подменю возвращает в окно редактирования текста.


При выходе из редактора (пункт a) выводится панель запроса на сохранение изменений в файле , буде таковые производились:
* a) сохранить и выйти; * b) не сохранять.



В панели подменю подсказки выводится более подробная, нежели в информационном окне, справка по управляющим последовательностям и командам.



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



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

Пункт е) параметры вызывает панель просмотра текущих настроек редактора с возможностью их изменения:
* a) табуляция пробелами НЕТ * b) поиск с учётом регистра НЕТ * c) авто-перевод строки НЕТ * d) авто-формат абзаца НЕТ * e) 8-битные символы ДА * f) окно подсказки ДА * g) клавиши как в Emacs ДА * h) ширина текста 79 * i) 16-битные символы НЕТ * j) сохранить установки




Выбрав соответствующий пункт подменю, можно изменить текущие значения параметров с НЕТ (OFF) на ДА (ON) и наоборот, или (для ширины текста) задать численное значение, после чего сохранить новые установки - в текущем каталоге или домашнем каталоге пользователя именем .init.eecode>.

В подменю поиска - два пункта (рис. 7): что искать и повторить поиск, смысл которых ясен.




И наконец, в подменю о разном - три пункта :
* форматирование абзаца, * вызов оболочки для прямого ввода команд, не выходя из редактора, и * вызов проверки орфографии, которая выполняется внешней программой типа ispell или aspell.




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

Переход в командный режим осуществляется комбинацией клавиш Control+C, после чего у нижнем левом углу окна редактирования появляется приглашение собственной командной строки редактора:

command:

Команд в ee немного, и они мнемонически понятны, так что запомнить их легко:
* help - вывод подробной подсказки; * read - вставка указанного файла в позицию курсора файла текущего; * write - запись текущего файла под произвольным именем; * exit - выход из редактора с записью выполненных изменений; * quit - выход из редактора без записи изменений; * line - вывод номера текущей строки и количества символов в ней; * expand - преобразование табуляции в пробелы; * noexpand - не преобразование :) табуляции в пробелы; * file - распечатать файл; * char - вывод числового значения ASCII-кода текущего символа; * case - поиск, чувствительный к регистру символов; * nocase - поиск, не чувствительный к регистру; * !cmd - выполнение команды шелла внутри редактора; вывод команды можно через "мышиный" буфер перетащить в окно редактирования текста; * 0-9 и далее - переход на строку с указанным номером.

В итоге оптимальным методом работы в ee, по моему мнению, будет использование управляющих последовательностей вкупе с директивами командного режима.

Возможности настройки ee ограничены, но они имеются. Типовой настроечный файл этого редактора - /usr/share/misc/init.ee. По умолчанию он включает в себя следующие строки:

emacs
noexpand
nomargins

Его можно скопировать в свой домашний каталог:

% cp /usr/share/misc/init.ee ~/.init.ee

где и подвергнуть всяким издевательствам. А можно поступить иначе - через меню установить необходимые настройки, как было сказано выше, и записать их в виде всё того же файла ~/.init.ee. У меня он имеет такой вид:

NOCASE
NOEXPAND
NOINFO
NOMARGINS
NOAUTOFORMAT
PRINTCOMMAND lpr
RIGHTMARGIN 80
NOHIGHLIGHT
EIGHTBIT
NOEMACS
16BIT

Можно видеть, что у моём конфиге отлючён режим поддержки клавиатурных последовательностей Emacs'а (параметр NOEMACS). Однако по умолчанию он имеется (параметр emacs "образцового" конфига). Так что любители этого редактора могут пользоваться ими и в ee.

Надо заметить, что вывод подсказок и сообщений на русском языке в eeпроисходит только при правильной локализации. К сожалению, он не поддерживает локаль UTF8. И если таковая используется в качестве Иксовой локали, работа с кириллицей в этом редакторе, запущенном в окне эмулятора терминала, становится невозможной: не смотря на присутствие среди параметров поддержки шестнадцати бит, которую можно видеть на рис. 6, кириллические символы в Unicode нормально не вводятся и не отображаются. А сообщения ee и его меню в этом случае будут английскими (благо, что не кракозябровыми), хотя в консоли при какой-либо русской восьмибитной кодировке, KOI8-R, скажем, они останутся вполне русскими. Нет в нём также и какой-либо подсветки синтаксиса, а также возможности создавать пользовательские макросы.

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

И напоследок - несколько слов об использовании ee при системных аварийно-восстановительных работах, обычно выполняемых в однопользовательском режиме. Как уже говорилось, его исполняемый файл находится в каталоге /usr, который обычно образует самостоятельную файловую систему, лежащую на отдельном разделе. А в однопользовательском режиме, как известно, монтируется только корневая файловая система (и то в режиме read only). Так что, дабы использовать ee для аварийного редактирования общесистемных конфигов, надо не только перемонтировать корневой каталог в режиме чтения/записи, но и не забыть подмонтировать к нему каталог /usr - элементарная операция, о которой начинающие пользователи иногда забывают. Да и запускать редактор следует с указанием полного пути:

# /usr/bin/ee

Почему я об этом говорю так подробно? Да потому, что в однопользовательском режиме у ee не так уж много альтернатив. Вариант vi из каталога /rescue, содержащего статически слинкованные исполняемые файлы важнейших "аварийных" утилит, в некоторых версиях FreeBSD (в частности, той, в которой пишутся эти строки - 7.11-BETA), просто не работает, ссылаясь на отсутствие доступа к библиотеке свойств терминала. Так что остаётся только строчный (неинтерактивный) редактор /rescue/ed, использование которого без должного навыка затруднительно (не будем забывать, что и man-страницы в однопользовательском режиме могут быть недоступны), да и не всегда эффективно. И это - ещё один стимул для заблаговременного привыкания к редактору ee.

Unix   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉