Vi: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
imported>VitalikBot
м Обновление шаблона {{improve}}; langs: en,da,eo
 
imported>DenisKrivosheev
Нет описания правки
 
Строка 1: Строка 1:
{{Cf|vi-, VI, Vi, vị, ви, វី}}
{{lowercase}}
{{wikipedia}}
{{Программа
= {{-en-}} =
| название                  = vi
 
| логотип                    =  
=== Морфологические и синтаксические свойства ===
| снимок экрана              = NetBSD 6.1 vi C Hello World.png
{{abbrev|lang=en|роль=}}
| подпись                    = Редактирование [[Hello, world!|программы Hello World!]] на [[Си (язык программирования)|языке Си]] в редакторе vi. Тильды обозначают строки, отсутствующие в файле.
 
| тип                        = [[Текстовый редактор]]
=== Произношение ===
| автор                      =  
{{transcription|}}
| разработчик                = [[Джой, Билл|Билл Джой]]
 
| написана на                = [[Си (язык программирования)|Си]]
=== Семантические свойства ===
| интерфейс                  =  
 
| движок                    =  
==== Значение ====
| операционные системы      = [[Unix]], [[Unix-подобная операционная система|Unix-подобные]]
# {{аббр.|en|visual|серия текстовых редакторов операционных систем семейства UNIX}} {{пример||перевод=}}
| аппаратная платформа      = [[Кроссплатформенность|Кроссплатформенный]]
#
| языки интерфейса          =  
#
| первый выпуск              = {{Start date and age|df=yes|1976}}
 
| последняя версия          =
==== Синонимы ====
| дата последней версии      =  
#
| репозиторий                =
#
| читаемые форматы файлов    =
#
| создаваемые форматы файлов =  
 
| состояние                  =  
==== Антонимы ====
| лицензия                  = [[Лицензии BSD|4-пунктовая лицензия BSD]] или [[CDDL]]
#
| сайт                      =
#
| кандидат в релизы          =  
#
| дата кандидата в релизы    =  
 
| тестовая версия            =  
==== Гиперонимы ====
| дата тестовой версии      =
#
| бета-версия                =
#
| дата бета-версии          =  
#
| альфа-версия              =  
 
| дата альфа-версии          =  
{{stub|en}}<!--{{unfinished|en|s=1|p=1}}-->
{{Категория|язык=en|||}}
{{длина слова|2|en}}
 
= {{-br-}} =
 
=== Морфологические и синтаксические свойства ===
{{сущ br m reg|vi|слоги={{по-слогам|vi}}
}}
}}
{{Нет сносок|дата=2019-03-22}}


=== Произношение ===
'''vi''' (от {{lang-en|visual}}, произносится {{IPAc-en|ˌ|v||ˈ||audio=en-us-vi.oga}})<ref>{{citation |author=Computerphile |title=EXTRA BITS GREP from ED and Text Editors - Computerphile – Computerphile |date=2018-07-09 |url=https://www.youtube.com/watch?v=bSaBe6WiC2s&list=PLzH6n4zXuckqZ90zLyy36qjO5YIn1RulG |access-date=2020-04-17 |url-status=live |archive-url=https://ghostarchive.org/varchive/youtube/20211118/bSaBe6WiC2s |archive-date=2021-11-18}}{{cbignore}}</ref>, по-русски читается «ви-ай») — серия [[текстовый редактор|текстовых редакторов]] [[операционная система|операционных систем]] семейства [[UNIX]].
{{transcriptions||}}
 
=== Семантические свойства ===
{{илл|Ei01.jpg|Vi}}
 
==== Значение ====
# [[яйцо]]
 
==== Синонимы ====
#
 
==== Антонимы ====
#
 
==== Гиперонимы ====
#
 
==== Гипонимы ====
#
 
=== Родственные слова ===
{{родств-блок
|существительные=
|прилагательные=
|глаголы=
|наречия=
}}
 
=== Этимология ===
 
<!-- Служебное: -->
{{improve|br|морфо|транскрипция/мн|пример|синонимы|гиперонимы|этимология}}
{{Категория|язык=br|Яйцо|}}
{{длина слова|2|br}}
 
= {{-da-}} =
 
=== Морфологические и синтаксические свойства ===
{{мест da |слоги={{по-слогам|vi}}||}} Объектный падеж - [[os]].
 
{{морфо|прист1=|корень1=|суфф1=|оконч=}}
 
=== Произношение ===
{{transcription|ʋiː}}
 
=== Семантические свойства ===
 
==== Значение ====
# [[мы]] {{пример|Og han var i Bagstavnen og sov paa en Hovedpude, og de vække ham og sige til ham: „Mester! bryder du dig ikke om, at {{выдел|vi}} forgaa?“||Danske Bibel|1871/1907|ч=Евангелие от Марка 4:38|||перевод=А Он спал на корме на возглавии. Его будят и говорят Ему: Учитель! неужели Тебе нужды нет, что {{выдел|мы}} погибаем?}}
 
==== Синонимы ====
#
#
 
=== Этимология ===
От {{этимология:*wiz|da}}
 
=== Фразеологизмы и устойчивые сочетания ===
*
 
<!-- Служебное: -->
{{improve|da|морфо|семантика?}}
{{Категория|язык=da|||}}
{{длина слова|2|da}}
 
= {{-la-}} =
 
=== Морфологические и синтаксические свойства ===
{{форма-сущ la|база=vis|падеж=abl|число=sg|слоги={{по-слогам|vī}}}}
 
{{морфо|прист1=|корень1=vi|суфф1=|оконч=}}
 
=== Произношение ===
{{transcription|}}
 
=== Семантические свойства ===
 
==== Значение ====
# {{Нужен перевод|}} {{пример||перевод=}}
#
 
==== Синонимы ====
#
#
 
==== Антонимы ====
#
#
 
==== Гиперонимы ====
#
#
 
==== Гипонимы ====
#
#
 
=== Родственные слова ===
{{родств-блок
|умласк=
|уничиж=
|увелич=
|имена-собственные=
|существительные=
|прилагательные=
|числительные=
|местоимения=
|глаголы=
|наречия=
|предикативы=
|предлоги=
}}
 
=== Этимология ===
Происходит от {{этимология:|}}
 
=== Фразеологизмы и устойчивые сочетания ===
*
 
=== Библиография ===
*
 
{{stub|la}}
{{Категория|язык=la|||}}
{{длина слова|2|la}}
{{unfinished|la|p=1}}
 
{{длина слова|2|la}}
 
= {{-ca-}} =
 
=== Морфологические и синтаксические свойства ===
{{сущ ca m reg|v|i|слоги={{по-слогам|vi}}
}}
 
=== Произношение ===
{{transcriptions||}}
 
=== Семантические свойства ===
 
==== Значение ====
# [[вино]] {{пример||перевод=}}
 
==== Синонимы ====
 
==== Антонимы ====
 
==== Гиперонимы ====
 
==== Гипонимы ====
 
=== Родственные слова ===
{{родств-блок
|существительные=
|прилагательные=
|глаголы=
|наречия=
}}
 
=== Этимология ===
 
<!-- Служебное: -->
{{improve|ca|морфо|транскрипция/мн|пример|синонимы|гиперонимы|этимология}}
{{Категория|язык=ca|Вино|}}
{{длина слова|2|ca}}
 
= {{-no-}} =
 
=== Морфологические и синтаксические свойства ===
{{мест no |слоги={{по-слогам|vi}}||}} Объектный падеж - [[oss]].
 
{{морфо|прист1=|корень1=|суфф1=|оконч=}}
 
=== Произношение ===
{{transcription|ʋiː}}
 
=== Семантические свойства ===
 
==== Значение ====
# {{помета.|no}} [[мы]] {{пример||перевод=}}
 
==== Синонимы ====
#
#
 
=== Этимология ===
От {{этимология:*wiz|no}}
 
=== Фразеологизмы и устойчивые сочетания ===
*
 
<!-- Служебное: -->
{{improve|no|морфо|пример|семантика?}}
{{Категория|язык=no|||}}
{{длина слова|2|no}}
 
= {{-sv-}} =
 
=== Морфологические и синтаксические свойства ===
{{мест sv pers|p=1|n=pl|соотв=vår|слоги={{по-слогам|vi}}||}} Объектный падеж - [[oss]].


{{морфо|прист1=|корень1=|суфф1=|оконч=}}
== История ==
Первая версия была написана [[Джой, Билл|Биллом Джоем]] в [[1976 год]]у.


=== Произношение ===
В то время наиболее распространённым был редактор '''[[ed]]'''. Поскольку он был довольно сложным для «простого смертного», George Coulouris разработал редактор '''em''' ({{lang-en|editor for mortals}} — «редактор для смертных»). Билл Джой модифицировал редактор '''em''' и назвал его '''en''', а позже на его основе создал '''[[ex (Unix)|ex]]''', в котором появился визуальный режим, вызывавшийся командой '''vi'''. Так как пользователи больше времени проводили в визуальном режиме, '''ex 2.0''', ставший частью 2[[BSD]], сразу запускался уже в нём. Так появился '''vi''', бывший в то время всего лишь [[Жёсткая ссылка|жёсткой ссылкой]] на '''ex'''<ref>{{Cite web |url=https://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/ |title=Bill Joy’s greatest gift to man — the vi editor |access-date=2017-09-29 |archive-date=2014-06-03 |archive-url=https://web.archive.org/web/20140603174753/https://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/ |url-status=live }}</ref>.
{{transcription|ʋiː}}


=== Семантические свойства ===
Редактор писался для терминала [[ADM-3A]], имевшего ограниченную клавиатуру: на ней не было выделенных [[клавиши управления курсором|клавиш-стрелок]], а из модификаторов доступны только {{клавиша|[[Shift (Клавиша)|Shift]]}} и частично {{Клавиша|[[Ctrl]]}}<ref group="прим">Точнее, Vi не опрашивает клавиатуру напрямую, а получает от терминала код ASCII для нажатой клавиши или их сочетания. Следовательно, клавиша Ctrl может использоваться не со всеми клавишами, а только с теми, при нажатии которых совместно с Ctrl вводятся [[управляющие символы|управляющие символы ASCII]].</ref>. Эти обстоятельства повлияли на выбор используемых в редакторе клавиш.


==== Значение ====
== Интерфейс ==
# [[мы]] {{пример|{{выдел|Vi}} är här som deltagare i en handelsdelegation.|перевод={{выдел|Мы}} здесь в составе торговой делегации.}} {{пример|Och straxt stod han upp, tog sina säng, och gick ut i allas deras åsyn; så att alle undrade storliga, och prisade Gud, sägande: Sådant såge {{выдел|vi}} aldrig.||Karl XII:s bibel|1873|ч=Евангелие от Марка 2:12|||перевод=Он тотчас встал и, взяв постель, вышел перед всеми, так что все изумлялись и прославляли Бога, говоря: никогда ничего такого {{выдел|мы}} не видали.}}
В отличие от многих привычных редакторов, vi имеет '''модальный''' интерфейс. Это означает, что одни и те же клавиши в разных режимах работы выполняют разные действия. В редакторе vi есть два основных режима: '''командный режим''' и '''режим вставки'''. По умолчанию работа начинается в командном режиме.


==== Синонимы ====
В ''режиме вставки'' [[клавиатура]] используется для набора текста. Для выхода в командный режим используется клавиша {{key|Esc}} или комбинация {{key|Ctrl|c}}.
#
#


=== Этимология ===
В ''командном режиме'' алфавитные клавиши соответствуют командам перемещения и изменения текста. Так, команды <code>h</code>, <code>j</code>, <code>k</code>, <code>l</code> перемещают курсор на одну позицию влево, вниз, вверх, вправо соответственно, команда <code>x</code> удаляет один символ и т. д. Это позволяет работать без необходимости использования дополнительной клавиатуры и [[Сочетания клавиш|клавиш-модификаторов]], таких, как {{key|Ctrl}}, {{key|Alt}} и т. д. Более сложные операции редактирования получаются комбинацией простых, например, <code>2dw</code> удаляет два слова. Для полнотекстовых операций имеется возможность задавать команды [[ex (Unix)|ex]] в подобии командной строки, например, <code><nowiki>:1,.s/wiki/[[wiki]]/g</nowiki></code> заключит все вхождения последовательности символов ''wiki'' от начала текста до текущей позиции в двойные квадратные скобки.
От {{этимология:*wiz|sv}}


=== Фразеологизмы и устойчивые сочетания ===
=== Часто используемые команды ===
*  
* <code>/str</code> — Поиск строки str вперед. str может быть регулярным выражением
* <code>?str</code> — Поиск строки str назад
* <code>n</code> — Повторить поиск в том же направлении
* <code>N</code> — Повторить поиск в обратном направлении
* <code>:[range]s/old/new/[g]</code> — Заменить old на new в указанном диапазоне строк range. new и old могут быть регулярными выражениями, а range задается аналогично диапазону строк в редакторе ed. Например, для диапазона строк с 32 по 64 range будет <code>32,64</code>, первая строка соответствует <code>1</code>, последняя задается через символ <code>$</code>. Суффикс g означает заменить все вхождения old в строке, а не только первое.
* <code>:e!</code> — перезагрузить текущий файл
* <code>:33</code> — переместиться на 33-ю строку текстового файла
* <code>i</code> — перейти в режим редактирования
* <code>a</code> — перейти в режим редактирования после текущего символа
* <code>u</code> — отменить последнее действие
* <code>.</code> — повторить последнее действие
* <code>x</code> — вырезать символ под курсором
* <code>yy</code> — копировать строку
* <code>dd</code> — вырезать строку
* <code>p</code> — вставить
* <code>J</code> — склеить две строки
* <code>:w</code> — сохранить файл на диске
* <code>:wq</code> — выход с сохранением файла
* <code>ZZ</code> — выход с сохранением файла
* <code>:q</code> — выход
* <code>:q!</code> — выход без сохранения файла
* <code>ZQ</code> — выход без сохранения файла
* <code>:r</code> — вставить в документ другой файл


<!-- Служебное: -->
Чтобы получить подробную помощь по редактору vi, выполните команду <code>man vi</code> в Unix shell (q — выход из справки).
{{improve|sv|морфо|семантика?}}
{{Категория|язык=sv|||}}
{{длина слова|2|sv}}


= {{-eo-}} =
== Другие редакторы ==
{{местоимения eo}}
{{дополнить раздел|дата=2015-11-04}}
vi
Спор между сторонниками vi и [[emacs]] является классическим примером «религиозных войн».


Личное местоимение второго лица, единственного или множественного числа.
== Клоны ''vi'' ==
Существуют клоны редактора vi с расширенной функциональностью:


=== Семантические свойства ===
* [[Vim]]
* [[Elvis (текстовый редактор)|elvis]]
* [[:en:vile (editor)|vile]]{{ref|en}}
* [[:en:nvi|nvi]]{{ref|en}} — реимплементация vi под свободной [[лицензия BSD|лицензией BSD]]
* viper — плагин для [[Emacs]], эмулирующий команды vi


==== Значение ====
== См. также ==
# [[вы]] {{пример|Kaj kiam oni forkondukos kaj transdonos vin, ne antaŭzorgu, kion vi parolos; sed kio ajn estos donita al vi en tiu horo, tion parolu; ĉar la parolanto estas ne {{выдел|vi}}, sed la Sankta Spirito.|BFBS|La Sankta Biblio|1926|ч=Евангелие от Марка 13:11|||перевод=Когда же поведут предавать вас, не заботьтесь наперед, что́ вам говорить, и не обдумывайте; но что дано будет вам в тот час, то́ и говорите, ибо не {{выдел|вы}} будете говорить, но Дух Святой.}}
* [[Emacs]]
# [[ты]] {{пример|dirante: Kio estas inter ni kaj vi, Jesuo Nazaretano? ĉu {{выдел|vi}} venis, por pereigi nin? mi scias, kiu {{выдел|vi}} estas: la Sanktulo de Dio.|BFBS|La Sankta Biblio|1926|ч=Евангелие от Марка 1:24|||перевод=оставь! что Тебе до нас, Иисус Назарянин? {{выдел|Ты}} пришел погубить нас! знаю Тебя, кто {{выдел|Ты}}, Святой Божий.}}
* [[Nano]]


=== Родственные слова ===
== Примечания ==
{{примечания|group=прим}}
{{примечания}}


* притяжательные местоимения: v<u>i</u>a ([[ваш]]), v<u>i</u>aj ([[ваши]])
== Ссылки ==
* [http://www.gentoo.org/doc/en/vi-guide.xml?style=printable Знакомство с vi — метод шпаргалки]{{ref|en}} [https://web.archive.org/web/20090129181240/http://www.gentoo.org/doc/ru/vi-guide.xml?style=printable#doc_chap9_sect1 перевод на русский] Даниэль Роббинс, президент/исполнительный директор, [[Gentoo Technologies|Gentoo Technologies, Inc]].
* [http://www.intuit.ru/studies/courses/22/22/lecture/361?page=3 Лекция: Текстовые редакторы Vi и Vim — Г. В. Курячий]


=== Фразеологизмы и устойчивые сочетания ===
{{Текстовые редакторы}}
:'''Скороговорки:'''
{{Команды Unix}}
* {{term|ĉu mi estas antaŭ aŭ malantaŭ vi|lang=eo}}
* {{term|Petro, vi la permeson de la patro nepre prenu por partopreni entreprenon||Петя, ты разрешение отца обязательно получи, чтобы принять участие в предприятии|lang=eo}}


<!-- Служебное: -->
[[Категория:Текстовые редакторы]]
{{improve|eo|морфология?|произношение?|семантика?|этимология?}}
[[Категория:Программное обеспечение для Unix]]
{{Категория|язык=eo|||}}
[[Категория:Vi]]
{{длина слова|2|eo}}
{{multilang|8}}

Текущая версия от 13:45, 18 января 2026

Шаблон: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 с расширенной функциональностью:

См. также

Примечания

Шаблон:Примечания Шаблон:Примечания

Ссылки

Шаблон:Текстовые редакторы Шаблон:Команды Unix