ТЕКСТОВОГО РЕДАКТОРА VI
В составе ОС LINUX обычно поставляются текстовые редакторы: ed - интерактивный строковый редактор, vi и ех - его расширенные версии. Под именем vi (visual interpretator - визуальный интерпретатор) эта программа работает как экранно-ориентированный редактор, а под именем ех - как строчно-ориентированный.
Для вызова редактора vi используется команда vi:
vi [+line] [-R] [-х] [-r] [-t] file...
где +line - номер строки, с которой Вы хотите начать редактирование; R - читать; это означает, что файл можно только просматривать, но не модифицировать; х - расшифровывающее чтение, т.е. просмотр файла, зашифрованного командой сryрt, или редактирование обычного текста с последующим шифрованием по мере записи на диск; r - восстановление файла после системного или программного крахов; t - вызов для редактирования файла, который содержит названный (в поле filе команды vi) тег (tag). Тег - это список символов, с которых начинается раздел в текстовом файле. Теги разных файлов объединяют в один файл - файл тегов с именем tags. Опцией -t обеспечивается вызов файла tags, который содержит названный тег и имя редактируемого файла, в котором тег находится. Команду вызова редактора можно использовать в форме vi +/word/file - начало редактирования файла file с первой строки, которая содержит слово word, или в форме vi +file - начало редактирования файла с последней строки.
Структура редактора
Работая с редактором, пользователь находится или в одном из его командных режимов, или в режиме ввода текста. Нижеприведенная схема иллюстрирует взаимодействие этих режимов и способы перехода редактора между ними.
В простейшем случае для вызова редактора нужно ввести команду vi техт и нажать клавишу Enter. На экране появится:
$ vi tехt
_
~
.
.
"text"
Строка начинается знаком ~, знак _ определяет положение курсора. В данный момент пользователь находится в командном режиме vi. Перейти в режим ввода текста можно с помощью команд добавления текста, которые не отображаются на экране после их ввода:
а/А - ввод текста после курсора/после конца строки (аррend - присоединение);
i/I - вставка текста перед курсором/с 1-й позиции данной строки (insert - вставить);
о/О - образовать пустую строку ниже имеющейся / выше имеющейся.
Для выполнения команд (например, записи в файл, перемещения курсора) после введения текста или его части нужно перейти снова в командный режим vi, нажав клавишу Еsс. После вызова vi нажмите клавишу а (ввод текста после курсора), не нажимая после этого клавишу Enter, и Вы попадете в режим ввода текста. Вводите текст, нажимая клавишу Enter в конце каждой строки (курсор в режиме ввода текста можно перемещать вправо, используя клавишу " пробел ", и влево, используя клавишу ВаскSрасе.
Переход в командный режим vi. Для перехода в командный режим vi нужно нажать клавишу Еsс. Теперь редактор находится в командном режиме vi. В этом режиме выполняются следующие команды:
. - повторение последней команды;
u - аннулирование действия последней команды;
Изучение других многочисленных команд этого командного режима целесообразно проводить, разбив их на тематические группы. Они приведены в разделе 2.2.
Переход в режим ex. Чтобы перейти к группе команд редактора ех (под именем ех редактор работает как строчно-ориентированный), нужно ввести символ: (двоеточие), команду и нажать <Enter> или Еsс. Команды редактора ех начинаются с символа: и отображаются в нижней части экрана. После нажатия клавиши Еsс или <Enter> происходит возврат (назад) в командный режим. Команды режима ех:
:w - запись текста в файл;
:r - чтение файла;
:е - редактирование нового файла;
:е! - выход без сохранения данного файла и редактирование нового;
:n - авторедактирование;
:wq - запись текста и выход из редактора;
:x - запись текста только при наличии в нем изменений;
:q! - оставить текст в рабочей области и закончить редактирование;
:аb - присвоение сокращений;
:mар - определение ключей;
:set - изменение установочных режимов;
:s - выполнение замещений.
Переход в Shell. Редактор позволяет в процессе работы с ним выполнять команды ОС LINUX. Для этого нужно перейти в командный режим Shell с помощью команды!.
Рассмотрим пример. Определите текущее время командой date (вывод и установка даты):! date. Здесь символ: означает переход в командный режим ех, а символ! дает доступ к Shell. Для продолжительной работы с командами Shell можно вызвать командой:bash и после окончания работы вернуться в редактор vi, набрав СТRL-D.
Для возврата в командный режим vi нажмите клавишу Enter.