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]]/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в удалить символ под курсоромddв удалить всю строку:wв сохранить файл на диске:wqв выход с сохранением файла:qв выход:q!в выход без сохранения файла:rв вставить в документ другой файл
Чтобы получить подробную помощь по редактору vi, выполните команду man vi в Unix shell (q в выход из справки).
[править] Использование регулярных выражений
/^$/в пустая строка, т.е. только конец строки/./в непустая строка, по крайней мере один символ/^/в все строки/thing/в thing где-либо в строке/^thing/в thing в начале строки/thing$/в thing в конце строки/^thing$/в строка, состоящая лишь из thing/thing.$/в thing плюс любой символ в конце строки/\/thing\//в /thing/ где-либо в строке/[tT]hing/в thing или Thing где-либо в строке/thing[0-9]/в thing, за которой идет одна цифра/thing[^0-9]/в thing, за которой идет не цифра/thing1.*thing2/в thing1, затем любая строка, затем thing2/^thing1.*thing2$/в thing1 в начале и thing2 в конце
Чтобы манипулировать не только целыми фрагментами, выбираемыми регулярными выражениями, но и их частями, используются помеченные регулярные выражения: если конструкция \(...\) появляется в регулярном выражении, то часть соответствующего ей фрагмента доступна как \1. Допускается использование до девяти помеченных выражений, на которые ссылаются \1, \2 и т.д.
Вот ряд примеров использования помеченных регулярных выражений:
s/\(...\)\(.*\)/\2\1/в Поместить 3 первых символа в конец строки/\(..*\)\1/в Найти строки, содержащие повторяющиеся смежные цепочки символовs/^\(..*\)\.\(..*\)/\1.\\2/в Перенести остаток строки после первой точки на следующую строку
[править] Другие редакторы
Спор между сторонниками vi и emacs является классическим примером «религиозных войн».
На данный момент имеются реализации vi для различных операционных систем. Существуют клоны редактора vi с расширенной функциональностью.
[править] Клоны vi
[править] См. также
[править] Ссылки
- Знакомство с vi в метод шпаргалки (англ.) перевод на русский Даниэль Роббинс, президент/исполнительный директор, Gentoo Technologies, Inc.
- Очень кратко о редакторе «VI»
[править] Примечания
| Текстовые редакторы (список) | |
|---|---|
| DOS | |
| Windows | |
| Linux / *nix | |
| Общие | |
| SDK | |
| Функции | |

