Vi — текстовый редактор для консоли. Используется в Unix-подобных ОС.
Существует несколько версий vi: vi, elvis, vile и vim. Одна из них доступна практически во всех версиях Unix, а также и в Linux. Он обладает большим числом функций, включая подсветку синтаксиса, форматирование кода, мощный механизм поиска с заменой, макросы и многое другое.
В отличие от многих привычных редакторов, vi имеет модальный интерфейс. Это означает, что одни и те же клавиши в разных режимах работы выполняют разные действия.
В редакторе vi есть два основных режима:
- командный режим (включен по умолчанию).
- режим вставки.
В режиме вставки клавиатура используется для набора текста. Для выхода в командный режим используется клавиша Esc или комбинация Ctrl+c.
В командном режиме алфавитные клавиши соответствуют командам перемещения и изменения текста. Команды h, j,k, l перемещают курсор на одну позицию влево, вниз, вверх, вправо соответственно, команда x удаляет один символ и т. д.
Это позволяет работать без необходимости использования дополнительной клавиатуры и клавиш-модификаторов, таких, как Ctrl, Alt и т. д. Более сложные операции редактирования получаются комбинацией простых, например, 2dw удаляет два слова.
Часто используемые команды:
- /str — Поиск строки str вперед. str может быть регулярным выражением
- ?str — Поиск строки str назад
- n — Повторить поиск в том же направлении
- N — Повторить поиск в обратном направлении
- :[range]s/old/new/[g] — Заменить old на new в указанном диапазоне строк range. new и old могут быть регулярными выражениями, а range задается аналогично диапазону строк в редакторе ed. Например, для диапазона строк с 32 по 64 range будет 32,64, первая строка соответствует 1, последняя задается через символ $. Суффикс g означает заменить все вхождения old в строке, а не только первое.
- :e! — перезагрузить текущий файл
- :33 — переместиться на 33-ю строку текстового файла
- i — перейти в режим редактирования
- a — перейти в режим редактирования после текущего символа
- u — отменить последнее действие
- . — повторить последнее действие
- x — удалить символ под курсором
- yy — копировать строку
- dd — вырезать строку
- p — вставить
- J — склеить две строки
- :w — сохранить файл на диске
- :wq — выход с сохранением файла (shift + zz)
- :q — выход
- :q! — выход без сохранения файла
- :r — вставить в документ другой файл
Чтобы получить подробную помощь по редактору vi, выполните команду man vi в Unix shell (q — выход из справки).
С более подробной информацией можно ознакомиться здесь.