· Откройте в режиме только для чтения файл /etc/passwd так, чтобы курсор был установлен на вашу учетную запись.
· Выйдите из vi без сохранения изменений.
· Создайте новый файл text.txt, открыв его в vi и выйдя с сохранением изме- нений.
· Войдите в режим вставки, выполнив команду i. Введите произвольный текст и покиньте режим вставки (клавиша <Esc>).
· Проверьте, работает ли команда отказа от изменений u.
· Пользуясь встроенной системой помощи vim, найдите, какие еще варианты перехода в режим вставки имеются.
· Выйдите с сохранением изменений.
Перемещение курсора по тексту в vi
В редакторе vi перемещение по тексту можно осуществлять с помощью при- вычных клавиш управления курсором и клавиш <PgUp>, <PgDn>. Однако vi был разработан с учетом поддержки даже таких старых или специализиро- ванных терминалов, которые этими клавишами не обладают.
Как же обойтись без клавиш управления курсором? В командном режиме редактора vi для ввода команд используют только обычные клавиши алфа- витно-цифровой клавиатуры, а также клавиши <Ctrl>, <Esc> и <Enter>.
Для перемещения курсора по тексту подобно клавишам управления курсором используются четыре команды, на клавиатуре соответствующие им клавиши расположены рядом (<H>, <J>, <K> и <L>):
r h — смещает курсор влево на одну позицию;
r j — на строку вниз;
r k — на строку вверх;
r l — на позицию вправо.
Для смещения курсора сразу на несколько строк или позиций перед любой из указанных команд можно набирать в виде цифры количество строк или пози- ций.
Например, следующая команда переместит курсор на двадцать строк вверх: 20k.
Для прокрутки страниц используются сочетания: <Ctrl>+<F> (от англ. for- ward) — вперед и <Ctrl>+<B> (от англ. backward) — назад. По аналогии:
<Ctrl>+<D> — вниз (down), <Ctrl>+<U> — вверх (up).
Другие часто используемые команды перемещения по тексту приведены в табл. 7.1.
Таблица 7.1. Команды перемещения по тексту в vi
Команда
Действие
w
На слово вправо
b
На слово влево
e
Установить курсор в конец слова
Курсор в начало строки без учета отступа, т. е. в самое начало
^
Курсор на первый символ строки, не являющийся пробелом или табуляцией
$
Курсор в конец строки
)
Курсор на начало следующего предложения
(
Курсор на начало предыдущего предложения
}
Курсор в начало следующего абзаца
{
Курсор в начало предыдущего абзаца
G
На последнюю строку документа
#G
Переместить курсор на # — номер строки (например, 20G)