статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

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

  • Vim
  • elvis
  • vile
  • viper
  • nvi - полная копия по функциональности, содержит только свободный код.[1]

[править] См. также

[править] Ссылки

[править] Примечания

Источник в «/w/index.php?title=Vi&oldid=44964578»
Пространства имён

Варианты
Действия