EX(1) EX(1) НАЗВАНИЕ ex - текстовый редактор СИНТАКСИС |ex [-] [-v] [-t метка] [-r [файл]] [-R] [+команда] файл... ОПИСАНИЕ Редактор ex является родоначальником семейства редакто- ров ex и vi(1). Он содержит в качестве подмножества ре- дактор ed(1), от которого отличается наличием возмож- ности экранного редактирования. При работе с видеотерминалом целесообразно использовать экранный режим; в таких случаях удобно работать в эк- ранном редакторе vi(1). По сравнению с редактором ed(1), ex имеет много особен- ностей, полезных при работе с видеотерминалами: 1. Особенно удобен редактор vi. При работе в этом ре- дакторе используется гораздо больше возможностей терминала, чем в ed. Редактор анализирует базу данных терминалов [см. terminfo(4)], а также тип используемого терминала, заданный переменной окру- жения TERM, чтобы определить, как эффективнее с ним работать. В редакторе возможна вставка и уда- ление символов и строк посредством визуальных ко- манд (отсюда сокращение vi). Такой режим является основным при использовании vi(1). 2. Редактор ex имеет несколько новых возможностей, упрощающих просмотр файлов. Команда z дает легкий доступ к окнам текста. Нажатие CTRL+D вызывает п редвижение на половину окна, и более удобно для передвижения по файлу, чем многократное нажатие клавиши возврата каретки. Кроме того, в экранном режиме редактируемый фрагмент файла всегда перед глазами. 3. Редактор ex предоставляет больше возможностей для исправления ошибок. Команда undo (u) позволяет от менить любое изменение в случае неудачного резуль- тата. В редакторе ex доступно много полезной ин- формации: вывод строк, в которых произведены изм нения; отмечаются также те случаи, когда измене- ние, вызванное какой-либо командой, затронуло бо- лее чем одну строку - тем самым облегчается выяв- ление ошибок. 4. В редакторе предусмотрено предотвращение перезапи си в существующие файлы, пока они не отредактир ваны; таким образом, нельзя случайно испортить ко- мандой write иной файл, кроме редактируемого. Если происходит авария системы или редактора, или разъ- единение при связи по телефонной линии, то коман- дой recover можно восстановить результаты свое работы. 5. В редакторе возможна работа более чем с одним фай- лом. Можно ввести список файлов в командной строке и, используя команду next (n), редактировать их по очереди. В команде next также могут использоваться списки имен файлов или шаблоны, используемые shell'ом для определения нужных файлов. Вообще, при генерации имен файлов в редакторе можно ис пользовать метасимволы shell'а. Символ % также мо жет употребляться в командах, он заменяется именем текущего файла. 6. Для перемещения текста (между файлами или в преде лах одного файла) редактор имеет буфера с именами от a до z. Mожно поместить текст в такой буфер, а затем извлечь его при редактировании другого фай- ла. 7. Команда & редактора повторяет последнюю команду замены substitute. Кроме того, можно использовать диалоговую команду замены. При этом вводится набор необходимых изменений, а редактор в диалоговом ре жиме запрашивает о каждом из них - надо ли его производить. 8. Редактор позволяет не различать буквы верхнего и нижнего регистров при поиске и замене. Допускается также поиск по образцу - регулярному выражению. Подобная возможность полезна, например, при поиске слова "edit", если в тексте встречается слово "editor". 9. Редактор имеет также набор опций, которые позволя ют приспособить его работу по Вашему вкусу. Очень полезной является опция autoindent, которая пред- писывает редактору вставлять пробелы в начало строк для выравнивания их по левому краю. Вы мож те затем использовать CTRL+D (табуляция влево), пробел и табуляцию вправо для изменения отступ (переустановки границы). 10. Из других приятных особенностей упомянем новую ко- манду join (j), которая автоматически вставляет пробел между соединенными строками; команды < и >, которые перемещают группы строк; есть возможность отбирать тексты из буферов с помощью таких команд, как sort. Опциям команды ex приписан следующий смысл: - Не использовать интерактивные возможности ex (нап- ример, не выдавать приглашение). Полезно, когда команды редактора читаются из файла. -v Вызывает vi. -t метка Приступить к редактированию файла, сопоставленного с меткой. Редактирование начнется с выполнения ко манды, заданной при присвоении метки. -r [файл] Восстанавливает файл после аварии системы или ре- дактора. Если файл не указан, выдается список всех сохраненных файлов. -R Устанавливает режим "только на чтение", предотвра- щающий случайную запись в файл. +команда Начинает редактирование с выполнения определенной команды (типа поиска или позиционирования). Аргумент файл определяет имя редактируемого файла. Состояния редактора ex Командное Обычное, а также и начальное состояние. Приглаше- нием для ввода является :. Ввод Осуществляется посредством команд a, i или c. Вво- дить можно произвольные тексты. Ввод обычно прек ращается строкой, содержащей только точку, или прерыванием. Визуальное Переход осуществляется посредством команды vi, вы- ход производится посредством команд Q или CTRL+\. Команды редактора и сокращения. | +-----------------------------------------------------------+ | | abbrev ab next n undo u | | | append a number nu unmap unm | | | args ar preserve pre version ve | | | change c print p visual vi | | | copy co put pu write w | | | delete d quit q xit x | | | edit e read re yank ya | | | file f recover rec window z | | | global g rewind rew escape ! | | | insert i set se lshift < | | | join j shell sh print next CR | | | list l source so resubst & | | | map stop st rshift > | | | mark ma substitute s scroll ^D | | | move m unabbrev una | | +-----------------------------------------------------------+ Адресация в командах редактора: | +--------------------------------+--------------------------------------- | | n строка с номером n | /символы следующая строка с вхождением | | . текущая строка | символов | | $ последняя строка файла| ?символы предыдущая строка содержащая | | + следующая строка | p-n n-ая строка перед p-той | | - предыдущая строка | m,n строки от m до n | | +n n-ая следующая строка | 'x строка с маркером x | | % 1,$ | '' предыдущая текущая строка | ++-------------------------------+--------------------------------------- Инициализация опций EXINIT Переменная окружения для установки опций. $HOME/.exrc Файл инициализации редактора. ./.exrc Файл инициализации редактора. set x Установить опцию. set nox Убрать опцию. set x=val Дать значение val. set Показать измененные опции. set all Показать все опции. set x? оказать значение опции x. Наиболее употребительные опции | +-----------------+-----+------------------------------------------------ | | autoindent | ai |смещение вправо первой строки | | | | | | autowrite | aw |запись перед сменой файла | | | | | | ignorecase | ic |при поиске игнорировать размер букв | | | | | | list | |выдавать ^I вместо символа табуляции и $ в конце | | | |строки | | | | | | magic | |символы .[* воспринимать как шаблон | | | | | | number | nu |нумеровать строки | | | | | | paragraphs | para|имена макросов для оформления абзацев | | | | | | redraw | |считать терминал высокоскоростным | | | | | | scroll | |определяет шаг роллирования | | | | | | sections | sect|имена макросов для оформления секций | | | | | | shiftwidth | sw |определяет количество символов, используемых в | | | |мандах <, > и CTRL+D | | | | | | showmatch | sm |перемещение к парной скобке | | showmode | smd |выводить текущий режим ввода (в vi) | | slowopen | slow|не перерисовывать изображение в процессе вставки | | window | |определяет количество высвечиваемых на экране ст | | | |(окно) | | wrapscan | ws |перескакивать ли через границу буфера | | wrapmargin | wm |автоматическое расщепление строк | +-----------------+-----+------------------------------------------------ Регулярные выражения ^ начало строки $ конец строки . любой символ \< начало слова \> конец слова [символы] любой из перечисленных символов [^символы] любой не совпадающий ни с одним из перечисленных символов [x-y] любой символ из указанного диапазона * любое число повторений предыдущего ФАЙЛЫ /usr/lib/ex?.?strings сообщения об ошибках /usr/lib/ex?.?recover для команды восстановления /usr/lib/ex?.?preserve для команды сохранения /usr/lib/terminfo/?/* информация о терминалах $HOME/.exrc стартовый файл редактора ./.exrc стартовый файл редактора /tmp/Exnnnnn временный файл редактора /tmp/Rxnnnnn временный файл именованных бу- феров /usr/preserve/вх.имя каталог сохранения СМ. ТАКЖЕ awk(1), bfs(1), ed(1), edit(1), grep(1), sed(1), vi(1). curses(3X), term(4), terminfo(4) в Справочнике програм- миста. СЮРПРИЗЫ Команда undo не восстанавливает маркеры измен строк. Команда undo не очищает признак измененности буфера. Командой z выводится заданное количество логических, а не физических строк. Логическая строка может занимать более одной строки экрана. Если в командной строке использовалась опция -, то бу- дет подавляться распечатка имен файлов при возникнове- нии ошибок ввода/вывода. В момент выхода редактор не предупреждает о наличии текстов, помещенных в именованные буфера, но оставшихся неиспользованными. Пустые символы отбрасываются при вводе файлов и не мо- гут появиться в результирующих файлах.