Перейти до вмісту

Vi

Матеріал з Вікіпедії — вільної енциклопедії.
Vi
Типmodal text editord і стандартна утиліта UNIX[d] Редагувати інформацію у Вікіданих
АвторБілл Джой Редагувати інформацію у Вікіданих
РозробникБілл Джой Редагувати інформацію у Вікіданих
Версії050325 (25 березня 2005)[1]
Операційна системаUNIX-подібні операційні системи Редагувати інформацію у Вікіданих
Мова програмуванняC[2] Редагувати інформацію у Вікіданих
ЛіцензіяЛіцензія BSD Редагувати інформацію у Вікіданих
Репозиторійex-vi.cvs.sourceforge.net/ex-vi/ex-vi/
Вебсайтex-vi.sourceforge.net Редагувати інформацію у Вікіданих

vi (вимовляється як дві літери, Слухатиi[ˌvˈ])[3] — повноекранний текстовий редактор, спочатку створений для операційної системи Unix. Портована підсистема поведінки vi і програм, заснованих на ній, і також мова редактора ex, що підтримується в цих програмах, стандартизована Single UNIX Specification і POSIX[4].

Назва «vi» походить від скорочення однозначної команди ex visual, яка перемикає редактор рядків ex у повноекранний режим.

Опитування читачів Linux Journal у 2009 році показало, що vi був найпоширенішим текстовим редактором серед респондентів, випередивши gedit, другий за популярністю редактор, майже удвічі (36% проти 19%)[5].

Історія

[ред. | ред. код]

Історія vi починається в серпні 1969 року в лабораторії AT&T Bell Labs, де Кен Томпсон почав працювати над мінімалістичною системою, що складалася лише з трьох невеликих компонентів: асемблера, оболонки... і простого текстового редактора, відомого як «ed», що (очевидно) є скороченням від «editor» (редактор). який швидко став фактичним текстовим редактором для Unix, залишаючись частиною стандарту POSIX і до цього дня[6].

З інтерв'ю Білла Джоя для журналу Linux Magazine у 1999 році:

Справа в тому, що Кен Томпсон приїхав до Берклі і привіз із собою цю несправну систему Pascal, і ми отримали літню роботу, щоб її полагодити. Під час ремонту ми були незадоволені редактором, який використовували, і який називався ed. ed, безперечно, викликає розчарування.

— Білл Джой, [6]

Ми отримали цей код від хлопця на ім'я Джордж Кулуріс з Університетського коледжу в Лондоні, який називався em — Editor for Mortals (редактор для смертних), оскільки тільки безсмертні могли використовувати ed для будь-яких дій. До речі, до того літа ми могли друкувати тільки великими літерами. Того літа ми отримали ROM-пам'ять для наших терміналів, що підтримувала малі літери. Було дуже захоплююче нарешті використовувати малі літери.

Тож ми модифікували em і створили en. Не знаю, чи було eo або ep, але врешті-решт з'явилося ex. [сміх] Я пам'ятаю en, але не знаю, як воно перетворилося на ex. Тож у мене вдома був термінал і модем на 300 бодів, тож курсор міг рухатися, і я просто не спав кілька місяців поспіль і написав vi.

— Білл Джой, [7]

vi є, насправді, режимом(інші мови) попереднього редактора ex. Спочатку ex не мав функціональності редагування у повноекранному режимі, але в 1976 році Білл Джой вдосконалив його, додавши підтримку візуального режиму. Програма була оновлена таким чином, що запускалася у візуальному режимі при запуску за допомогою команди vi, а не у старому режимі при запуску за допомогою команди ex. Таким чином, ex і vi є однією програмою, а не двома[8]. ex 1.1 був випущений як частина першого випуску Berkeley Software Distribution в березні 1978 року. Лише у версії ex 2.0, випущеній як частина Second BSD в травні 1979 року, редактор було встановлено під назвою «vi», що переводило користувача безпосередньо у візуальний режим ex[9].

Для редагування у vi використовуються спеціальні команди. Також існує декілька режимів редагування: Normal mode, Insert mode, Command mode. У Insert mode редактор вставляє символи набрані на клавіатурі. Перехід у Normal mode виконується за допомогою клавіші <ESC>. У цьому режимі редактор виконує набрані на клавіатурі команди, наприклад:

  • j — перехід вниз
  • l — перехід вправо
  • x — видалення символу
  • w — перехід на початок наступного слова
  • dd — видалення рядка
  • d2d — видалення двох рядків
  • dt( — видалення символів до символу (
  • dt) — видалення символів до символу)
  • yy — копіювання рядка
  • y2y — копіювання двох рядків
  • p — вставлення попередньо скопійованих або видалених рядків
  • . — повторення команди, виконаної в режимі вставки (insert mode)
  • i — перехід у режим вставки (insert mode)
  • % — перехід на дужку, відповідну до дужки під курсором
  • n — перехід до наступного знайденого результату пошуку

Це надає можливості майже не відривати руки від основної клавіатури щоб рухатись та редагувати текст. Також освоєння потужніших команд може допомогти прискорити редагування текстів. Наприклад:

  • :10,20s/кішка/собака/g — замінити у тексті в рядках з десятого по двадцятий всі слова «кішка» на «собака».
  • :%s/кішка/собака/g — замінити у всьому тексті всі слова «кішка» на «собака».
  • :/кішка — пошук «кішка» з поточної позиції до кінця файлу
  • :?кішка — пошук «кішка» з поточної позиції до початку файлу

Зараз існує декілька модифікацій цього редактора майже під всі операційні системи. Популярними є vim (VI Modified — модификований vi), та gvim — Gui VIM (vim з графічним інтерфейсом користувача).

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. The Traditional Vi
  2. The vi Open Source Project on Open Hub: Languages Page — 2006.
  3. Computerphile (9 липня 2018), EXTRA BITS GREP from ED and Text Editors - Computerphile – Computerphile, архів оригіналу за 18 листопада 2021, процитовано 17 квітня 2020
  4. vi. pubs.opengroup.org. Архів оригіналу за 27 листопада 2023. Процитовано 5 лютого 2025.
  5. Readers' Choice Awards 2009 | Linux Journal. www.linuxjournal.com (англ.). Архів оригіналу за 30 листопада 2023. Процитовано 5 лютого 2025.
  6. а б Lunduke, Bryan (26 лютого 2023). The True History of vi. The Lunduke Journal of Technology. Процитовано 5 лютого 2026.
  7. Bill Joy's greatest gift to man — the vi editor. Архів оригіналу за 3 червня 2014. Процитовано 6 грудня 2010.
  8. Computerphile (9 липня 2018), EXTRA BITS GREP from ED and Text Editors - Computerphile – Computerphile, архів оригіналу за 18 листопада 2021, процитовано 17 квітня 2020
  9. Second Berkeley Software Distriution Manual. roguelife.org. Архів оригіналу за 4 квітня 2016. Процитовано 5 лютого 2026.

Посилання

[ред. | ред. код]