CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
28.03.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

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

CITKIT.ru

Cовсем начинающим
пользователям FreeBSD
посвящается

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

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

% ee filename

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


Рис. 1. Общий вид редактора 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 (рис. 2). Та же клавиша в любом из подменю возвращает в окно редактирования текста.


Рис. 2. Главное меню редактора ee; рамки вокруг меню и информационного окна отключены.

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

  • a) сохранить и выйти;
  • b) не сохранять.


Рис. 3. Подменю выхода

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


Рис. 4. Подменю подсказки

Подменю файловых операций (рис. 5) содержит следующие пункты:

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


Рис. 5. Подменю файловых операций

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

Пункт е) параметры вызывает панель просмотра текущих настроек редактора с возможностью их изменения (рис. 6):

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


Рис. 6. Подменю параметров

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

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


Рис. 7. Подменю поиска

И наконец, в подменю о разном — три пункта (рис. 8):

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


Рис. 8. Подменю о разном

Как видно из сказанного, меню 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.




Комментарии

аноним, Sat Dec 12 00:22:18 2009:
Для изучения vi нужно потратить очень большое время

Лучше б работал...
аноним, Fri Dec 11 23:14:42 2009:
Спасибо!
Dmitriy, Thu Nov 20 09:21:18 2008:
По сравнению с vim, vi действительно урезанная верся, тем более во FreeBSD. Для изучения vi нужно потратить очень большое время. Я его потратил, и даже честно пытался понять зачем нужен ее. Честно скажу, пришел к следующему выводу: или в системе нет vi (что невозможно для POSIX систем), либо файл уже кем-то открыт в ... не vi.

У меня был один случай, когда по указанной причине vi не открывался. Я просто использовал ed. :)

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds