Vi | это... Что такое Vi? (original) (raw)
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. Суффикс g означает заменить во всем файле.:e!
— перезагрузить текущий файл:33
— перепрыгнуть на 33ю строку текстового файлаi
— перейти в режим редактированияa
— перейти в режим редактирования после текущего символаu
— отменить последнее действиеx
— удалить символ под курсоромdd
— удалить всю строку/qso
— найти слово qso в тексте после курсора:w
— сохранить файл на диске:wq
— выход с сохранением файла:q
— выход:q!
— выход без сохранения файла
Чтобы получить подробную помощь по редактору 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 | MultiEdit • WordPerfect • Лексикон • Слово и Дело • Фотон |
Windows | AkelPad • Bred • EditPlus • EmEditor • Notepad++ • PolyEdit • PSPad • SoloPad • Write • WordPad • Блокнот |
UNIX-подобные ОС | Ed • Elvis • gedit • Kate • KWrite • Nano • NEdit • Vi |
Кросс- платформенные | Acme • Emacs • FCKeditor • JEdit • JOE • Komodo Edit • SciTE • Sed • Vim |
Функции | Автодополнение • Автоформатирование • Подсветка синтаксиса • Предиктивный ввод • Сворачивание • Стиль отступов |