Vi
Шаблон:Lowercase Шаблон:КарточкаШаблон:Сортировка: по изображениям{{#if:||Шаблон:Категория по дате}}Ошибка скрипта: Модуля «check for unknown parameters» не существует.Шаблон:ИТ:Общие проверки Шаблон:Нет сносок
vi (от англ. Шаблон:Lang-en2, произносится Шаблон:IPAc-en)<ref>Шаблон:CitationШаблон:Cbignore</ref>, по-русски читается «ви-ай») — серия текстовых редакторов операционных систем семейства UNIX.
История
Первая версия была написана Биллом Джоем в 1976 году.
В то время наиболее распространённым был редактор ed. Поскольку он был довольно сложным для «простого смертного», George Coulouris разработал редактор em (англ. Шаблон:Lang-en2 — «редактор для смертных»). Билл Джой модифицировал редактор em и назвал его en, а позже на его основе создал ex, в котором появился визуальный режим, вызывавшийся командой vi. Так как пользователи больше времени проводили в визуальном режиме, ex 2.0, ставший частью 2BSD, сразу запускался уже в нём. Так появился vi, бывший в то время всего лишь жёсткой ссылкой на ex<ref>Шаблон:Cite web</ref>.
Редактор писался для терминала ADM-3A, имевшего ограниченную клавиатуру: на ней не было выделенных клавиш-стрелок, а из модификаторов доступны только Шаблон:Клавиша и частично Шаблон:Клавиша<ref group="прим">Точнее, Vi не опрашивает клавиатуру напрямую, а получает от терминала код ASCII для нажатой клавиши или их сочетания. Следовательно, клавиша Ctrl может использоваться не со всеми клавишами, а только с теми, при нажатии которых совместно с Ctrl вводятся управляющие символы ASCII.</ref>. Эти обстоятельства повлияли на выбор используемых в редакторе клавиш.
Интерфейс
В отличие от многих привычных редакторов, vi имеет модальный интерфейс. Это означает, что одни и те же клавиши в разных режимах работы выполняют разные действия. В редакторе vi есть два основных режима: командный режим и режим вставки. По умолчанию работа начинается в командном режиме.
В режиме вставки клавиатура используется для набора текста. Для выхода в командный режим используется клавиша Шаблон:Key или комбинация Шаблон:Key.
В командном режиме алфавитные клавиши соответствуют командам перемещения и изменения текста. Так, команды h, j, k, l перемещают курсор на одну позицию влево, вниз, вверх, вправо соответственно, команда x удаляет один символ и т. д. Это позволяет работать без необходимости использования дополнительной клавиатуры и клавиш-модификаторов, таких, как Шаблон:Key, Шаблон:Key и т. д. Более сложные операции редактирования получаются комбинацией простых, например, 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— выход с сохранением файлаZZ— выход с сохранением файла:q— выход:q!— выход без сохранения файлаZQ— выход без сохранения файла:r— вставить в документ другой файл
Чтобы получить подробную помощь по редактору vi, выполните команду man vi в Unix shell (q — выход из справки).
Другие редакторы
Шаблон:Дополнить раздел Спор между сторонниками vi и emacs является классическим примером «религиозных войн».
Клоны vi
Существуют клоны редактора vi с расширенной функциональностью:
- Vim
- elvis
- vileШаблон:Ref
- nviШаблон:Ref — реимплементация vi под свободной лицензией BSD
- viper — плагин для Emacs, эмулирующий команды vi
См. также
Примечания
Шаблон:Примечания Шаблон:Примечания
Ссылки
- Знакомство с vi — метод шпаргалкиШаблон:Ref перевод на русский Даниэль Роббинс, президент/исполнительный директор, Gentoo Technologies, Inc.
- Лекция: Текстовые редакторы Vi и Vim — Г. В. Курячий