103.8 Текстовый редактор Vi**.**
Студент должен уметь редактировать файлы в vi, и ориентироваться в нем.
Изучаем :
- навигацию по документу с использованием vi;
- использование основных режимов работы vi;
- вставку, редактирование, удаление, копирование и поиск текста.
**Термины и утилиты: **
- vi
- /, ?
- h,j,k,l
- i, o, a
- c, d, p, y, dd, yy
- ZZ, :w!, :q!, :e!
Так как все основные настройки в Linux выполняются редактированием файлов, все журналы, устройства, демоны и т.д. тоже по сути являются файлами, то текстовый редактор является одним из важнейших инструментов управления ОС. Существует множество редакторов с различными возможностями, здесь же будет рассмотрен редактор Vi.
Vi имеет модальный интерфейс и одни и те же клавиши в разных режимах выполняют разные действия. По умолчанию работа начинается в командном режиме.
Для перемещения по документу используются следующие символы:
- h или ← (перемещение на символ влево);
- j или ↓ (перемещение на символ вниз);
- k или ↑ (перемещение на символ вверх);
- l или → (перемещение на символ вправо);
- b** ** (перемещение в начало слова);
- e** ** (перемещение в конец слова);
- **( ** (перемещение в начало предложения);
- **) ** (перемещение в конец предложения);
- **{ ** (перемещение в начало абзаца);
- **} ** (перемещение в конец абзаца);
- **^ ** (перемещение в начало строки);
- **$ ** (перемещение в конец строки);
- 1** G **** ** (перемещение в начало файла);
- G** ** (перемещение в конец файла).
Для перехода в режим вставки можно воспользоваться следующими символами:
- I** ** (режим вставки перед текущим символом);
- a** ** (режим вставки после текущего символа);
- o** ** (вставить новую строчку);
- **s ** (стереть символ и вставить).
Для возврата в командный режим можно использовать клавишу Esc или сочетание Ctrl** + **C
Находясь в режиме редактирования можно использовать буфер обмена:
- y _ (скопировать)__;_
- d _ ( вырезать )__;_
- c _ ( изменить )__;_
- p _ (вставить)._
Также возможны комбинации с символами перемещения по тексту и обозначениями d (строка), w (слово) и l (символ); например
yw _ (скопировать слово);_
dd _ (вырезать строку);_
cl _ (изменить символ);_
d** $**_ (удалить с текущего места до конца строки);_
y** }**_ (скопировать с текущего места до конца абазца);_
Для поиска информации доступны символы:
- **/ ** _ (искать ниже по тексту набор символов, указанных после «/»);_
- **? ** _ (искать выше по тексту набор символов, указанных после «?»);_
- n** ** _ (показать следующий результат поиска);_
- N** ** _ (показать предыдущий результат поиска)._
Для завершения работы с файлом:
- :e! _ (отменить все изменения, где «!» - игнорировать все предупреждения);_
- :** w **! _ (записать изменения);_
- **:q ** (выйти из файла);
Как всегда, возможны комбинации, например:
:** wq ****! newfile.txt ** (сохранить под именем newfile . txt и выйти);
Также доступны сокращенные команды:
- **ZZ ** (сохранить и выйти)__;
- ZQ** ** (не сохранять и выйти);