<< Предыдущий раздел | /\ Содержание | >> Следующий раздел

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

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

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

Замечание
Большинство редакторов при сохранении файла создают резервную (backup) копию, но в отличие от Dos, где она имеет то же имя, что и файл и расширение .bak, в Unix принято давать резервным копиям то же имя что и у файла, но с тильдой "~" на конце (файл "compress.c" -- резервная копия "compress.c~").

Самый древний: vi

Vi был первым "настоящим" текстовым редактором под Unix. Его реализации есть во всех подвидах Unix. Сделан он был программистами исключительно для собственного использования, и для обычного пользователя весьма неудобен. Практически единственное, что надо о нем знать -- это как отличить его и как из него выходить, случайно оказавшись в нем (хотя для системных администраторов его знать все же желательно -- иногда, например, при "починке" системы, ничего кроме vi нет в принципе).

При загрузке vi (в Linux используется его "улучшенная" версия vim -- Vi IMproved) экран выглядит приблизительно так, как на иллюстрации (символами "~" обозначаются строки за концом файла):

/dev/hda4         /                  ext2    defaults        1 1
/dev/hda1         /c                 vfat    defaults        0 0
/dev/hda2         /d                 ext2    defaults,ro     0 2
/dev/hda3         swap               swap    defaults        0 0
/dev/fd0          /mnt/floppy        ext2    noauto          0 0
/dev/cdrom        /mnt/cdrom         iso9660 noauto,ro       0 0
/dev/cdhdd        /mnt/hdd           iso9660 noauto,ro       0 0
none              /proc              proc    defaults        0 0
/dev/hdb4         /mnt/hdb4          ext2    noauto,ro     0 0
/dev/hdb2         /mnt/hdb2          ext2    noauto,ro     0 0
~
~
~
~
~
~
"/etc/fstab" [readonly] 10 lines, 756 characters

Не вдаваясь в подробности работы vi (режим просмотра, режим редактирования и т.д.): обычно для выхода из него достаточно набрать ":q" и нажать Enter. В том случае, если "с перепугу" или по неопытности загруженный файл был изменен, то выйти без сохранения всегда можно, набрав ":qa!" (":" -- вызов командного режима, "q" -- выход, "a" -- из всех окон сразу, "!" -- выход несмотря на наличие изменений). Если при нажатии ":" в нижней строке не появляется приглашение (тоже ":"), то надо сначала нажать три раза Esc.

Замечание
Хотя достоинством vi является то, что он есть в любом Unix, его неудобство столь велико, что лучше потратить в каждой новой для себя системе несколько лишних минут и найти что-нибудь более приличное. Отсутствие же других текстовых редакторов является лишь показателем халтурной работы администратора системы, но никак не оправдывается наличием vi.

Замечание
У vi есть любопытная особенность: если его "убить" (kill) во время редактирования файла, то он посылает письмо владельцу, уведомляя о том, что редактировался такой-то файл и его, возможно, удастся восстановить такой-то командой.

Совет
Существует множество "клонов" vi -- elvis, vile и т.д. (в имени каждого из них присутствует буквосочетание "vi"). Есть даже версии vi для X-Window (в том числе написанные с использованием Motif). Приверженцы vi создали к нему множество расширений, включая многоуровневое "undo" и цветовое выделение синтаксиса. Но тем не менее это все тот же самый vi, и обычному пользователю связываться с ним просто не имеет смысла.

Простой и быстрый: joe

Joe очень похож по набору команд на редактор WordStar и среды фирмы Borland (Borland Pascal, Borland C++ и т.д.). Он активно использует комбинации клавиш Ctrl+K буква. Однако, в отличие от WordStar комбинации Ctrl+Q буква не применяются.

Основные комбинации клавиш приведены в таблице, но нажав Ctrl-K H можно вызвать справку по клавишам (убирается она той же комбинацией Ctrl-K H).

КлавишиДействие
Редактирование
BackspaceУдалить символ перед курсором
Ctrl+DУдалить символ под курсором (аналог Del)
Ctrl+JУдалить до конца строки
Ctrl+YУдалить строку
Ctrl+_Отмена последней операции редактирования
Ctrl+T TПереключение вставка/замена (insert/overtype)
Поиск и замена
Ctrl+K FПоиск/замена; для замены надо в опциях (запрашиваются после ввода образца) указать R.
Поиск/замена понимает регулярные выражения (несколько специального вида), нажав Ctrl-K H можно получить подсказку.
Ctrl+LПовтор последней операции поиска/замены
Работа с блоком
Ctrl+K BОтметить начало
Ctrl+K KОтметить конец
Ctrl+K CКопировать
Ctrl+K MПереместить (не Ctrl-K V, как в WordStar/Borland!)
Ctrl+K YУдалить
Ctrl+K WЗаписать в файл
Ctrl+K RПрочитать из файла
Работа с файлами
Ctrl+K DСохранить
Ctrl+K XСохранить и выйти
Ctrl+CВыйти без сохранения
Ctrl+K EОткрыть файл (в новом окне)

Любую операцию можно прервать, нажав Ctrl+C.

Joe поддерживает редактирование нескольких файлов одновременно -- каждый в своем "окне". Подробности можно узнать в справке.

У joe есть одна "неприятная" особенность: символ "`" (обратный апостроф) используется как префикс для ввода специальных символов. Поэтому бывают проблемы при вставке текста из другого окна при помощи мыши -- к примеру, строка, содержащая "`b" приведет к вставке в текст символа с ASCII-кодом 2 (Ctrl+B). Чтобы вставить в текст сам "`", надо нажать его дважды.

Замечание
Если вместо "joe" набрать "jstar", то joe запустится в режиме полной эмуляции клавиатуры WordStar, если "jmacs" -- то в режиме эмуляции Emacs, "jpico" -- будет эмулировать Pico.

Самый навороченный: emacs

Emacs -- это даже не столько редактор, сколько среда. Некоторые (в основном, программисты) используют его практически для всего -- включая чтение почты. Перечень всего, что умеет Emacs, мало кому известен.

Практически все функции Emacs'а написаны на интерпретируемом языке Lisp, поэтому редактор работает сравнительно медленно.

Хотя Emacs -- довольно неподходящий выбор для начинающих, у него есть одно несомненное достоинство -- как и vi, он есть практически в любом Unix.

По умолчанию в графической среде X-Window Emacs запускается в графическом режиме в собственном окне, при этом многие действия можно выполнять мышью. Из консоли, а также если указать ключ "-nw", он запустится в текстовом режиме.

По клавише F10 вызывается меню -- но не обычное, а "клавишное" -- для выбора пункта надо нажать какую-либо клавишу (все они отображаются на экране).

У Emacs есть несколько особенностей, обычно ставящих в тупик непривычных к нему людей. Во-первых, в текстовом режиме клавиша Backspace -- это не удаление предыдущего символа, а синоним Ctrl+H -- префикс "команд помощи". Во-вторых, по умолчанию русские буквы не вводятся как буквы, а вызывают некие команды Emacs'а. В-третьих, если жать стрелку вниз за концом файла, то Emacs будет сам добавлять дополнительные строки.

Многие команды состоят не из одной клавиши, а из нескольких -- первой обычно является Ctrl+X, Ctrl+C или Ctrl+H.

Предупреждение
Сочетания вида "Ctrl+X Ctrl+C" -- это далеко не то же самое, что "Ctrl+X C"!

КлавишиДействие
Редактирование
DelУдалить символ перед курсором
Ctrl+DУдалить символ под курсором (аналог Del)
Ctrl+KВнутри строки -- далить до конца строки,
в конце строки -- удалить конец строки ("подклеить" следующую строку)
Ctrl+_Отмена последней операции редактирования
InsПереключение вставка/замена (insert/overtype)
Поиск
F10 s sПоиск
Ctrl+LПовтор последней операции поиска
Работа с файлами
Ctrl+X sСохранить
Ctrl+X Ctrl+CВыйти (если файл изменен, то спросит, сохранять или нет)

Получить список клавиш (весьма немаленький) можно, нажав "Ctrl+H b". Прервать практически любую команду можно, нажав Ctrl+G.

Как в MC: mcedit

Mcedit -- это редактор, который используется в MC. Соответственно, он похож на привычный всем редактор из Norton Commander'а.

Mcedit понимает те же ключи "-c" и "-a", что и MC. Кроме того, поскольку это, собственно, и есть MC, он использует настройки MC, к примеру, "Display bits". Будучи запущен в цвете, mcedit умеет "расцвечивать" файлы .tex и .c (впрочем, по умолчанию цвета не самые приятные).

Основные клавиши редактирования приведены в таблице, но можно также посмотреть подсказку, нажав F1. Кроме того, F9 вызывает меню, в котором есть еще множество команд. Mcedit можно переключить в режим "эмуляции" Emacs, переключив в окне F9->Options->General пункт "Key emulation" в "Emacs".

КлавишиДействие
Редактирование
BackspaceУдалить символ перед курсором
Ctrl+DУдалить символ под курсором (аналог Del)
Ctrl+YУдалить строку
Ctrl+UОтмена последней операции редактирования
InsПереключение вставка/замена (insert/overtype)
Поиск и замена
F7Поиск (можно использовать регулярные выражения)
Shift+F7Повтор последней операции поиска
F4Замена
Работа с блоком
F3Первое нажатие -- начало отметки блока, второе -- конец
(в консоли для отметки можно пользоваться Shift+стрелками, как в Word и Borland)
F5Копировать
F6Переместить
F8Удалить
Ctrl+FЗаписать в файл
Shift+F5Прочитать из файла
Работа с файлами
F2Сохранить
F10Выйти (если файл изменен, то спросит, сохранять или нет)
Ctrl+OОткрыть файл

Какие еще бывают текстовые редакторы в Unix

ed
является самым старым -- даже древнее vi. Это строчный, а не экранный редактор (те, кто встречался с программой edlin в Dos, поймут что это такое). Для "простого смертного" освоение ed -- практически непосильная (а главное -- совершенно ненужная) задача. Единственная причина, по которой он здесь упоминается -- предупредить, что им пользоваться не следует.
pico
обычно устанавливается вместе с почтовой программой pine. Он является практически полной копией редактора, используемого в Pine при составлении писем.
jed
умеет эмулировать Emacs (по умолчанию он запускается в этом режиме) и WordStar. Это сравнительно небольшой и быстрый редактор -- того же класса, что и joe.
jove
является облегченной версией Emacs ("Jonathan's Own Version of Emacs").
we
вариант редактора (точнее, оболочки для разработки программ) WPE, работающий в текстовом режиме.
vfte
вариант редактора FTE для консоли.

Кроме всего прочего, есть множество текстовых редакторов, работающих в графической оболочке X-Window -- обязательно есть xedit, а одним из самых удобных считается nedit. Их мы будем рассматривать позже, вместе с X-Window.


<< Предыдущий раздел | /\ Содержание | >> Следующий раздел