vi
vi (visual) — серия текстовых редакторов операционных систем семейства UNIX.
История
Первая версия была написана Биллом Джоем в 1976 году.
В то время наиболее распространённым был редактор ed. Поскольку он был довольно сложным для «простого смертного», George Coulouris разработал редактор em (editor for mortals — редактор для смертных). Билл Джой модифицировал редактор em и назвал его en, а позднее — он получил название ex, на котором и основан vi[1].
Интерфейс
В отличие от многих привычных редакторов, vi имеет модальный интерфейс. Это означает, что одни и те же клавиши в разных режимах работы выполняют разные действия. В редакторе vi есть два основных режима: командный режим и режим вставки. По умолчанию, работа начинается в командном режиме.
В режиме вставки клавиатура используется для набора текста. Для выхода в командный режим используется клавиша Esc или комбинация Ctrl+c.
В командном режиме алфавитные клавиши соответствуют командам перемещения и изменения текста. Так, команды h
, j
, k
,
l
перемещают курсор на одну позицию влево, вниз, вверх, вправо соответственно, команда x
удаляет один символ и т. д. Это позволяет работать без необходимости использования дополнительной клавиатуры и клавиш-модификаторов, таких, как Ctrl, Alt и т. д. Более сложные операции редактирования получаются комбинацией простых, например, 2dw
удаляет два слова. Для полнотекстовых операций имеется возможность задавать команды ex в подобии командной строки, например, :1,.s/wiki/[[wiki]]/g
заключит все вхождения последовательности символов wiki от начала текста до текущей позиции в двойные квадратные скобки.
Часто используемые команды
/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 — выход из справки).
Другие редакторы
Спор между сторонниками vi и emacs является классическим примером «религиозных войн».
На данный момент имеются реализации vi для различных операционных систем.
Существуют клоны редактора vi с расширенной функциональностью.
Клоны vi
См. также
Ссылки
- Знакомство с vi — метод шпаргалки (англ.) перевод на русский Даниэль Роббинс, президент/исполнительный директор, Gentoo Technologies, Inc.
- Очень кратко о редакторе «VI»
- Лекция: Текстовые редакторы Vi и Vim - Г.В. Курячий
Примечания