Команди для руху курсору. Візуальний режим виділення тексту

Опис

Редактор vi - один із перших редакторів, розроблених для операційних систем UNIX. Він і досі залишається одним із самих потужних редакторівта стандартно поставляється практично з кожною операційною системою типу UNIX. У ньому немає меню, і всі дії здійснюються за допомогою клавіш і клавіатурних комбінацій.

Редактор vi працює у двох режимах.

командному

набору текстів

Відразу після запуску vi знаходиться в командному режимі. У цьому режимі натискання клавіш інтерпретуються як команди редактору, а не текст, який вводиться в документ.

Щоб перейти до режиму введення тексту, натисніть одну з клавіш:

означає

(Приєднати). У цьому режимі текст, що вводиться, вставляється після символу, на якому знаходиться курсор.

означає

(Вставити). У цьому режимі текст, що вводиться, вставляється перед символом, на якому знаходиться курсор.

І, нарешті, клавіша

означає

(Відкрити). Це призводить до того, що після рядка, на якому знаходиться курсор, в текст вставляється новий рядок. Потім курсор переміщається на новий рядок, і редактор переходить у режим insert, дозволяючи введення тексту новому рядку.

Існує також кілька інших команд для встановлення режиму введення тексту, які застосовуються не так часто. Це команда

Яка

додає порожній рядок над поточним рядком

; та команда

Яка

починає вставляти текст наприкінці поточного рядка

З режиму введення тексту до командного режиму можна повернутися натисканням клавіші

При переході до командного режиму редактор vi за замовчуванням видає звуковий сигнал.

Переміщення текстом у редакторі vi.

Переміщатися по тексту в режимі введення тексту можна, як правило, за допомогою курсорних клавіш або клавіш

Page Up / Page Down

Однак, на терміналі це не завжди функціонує. Крім того, на деяких терміналах ці клавіші можуть бути відсутніми. На цей випадок є інші клавіші, що дозволяють переміщатися документом у командному режимі.

Щоб скористатися цими клавішами переміщення, натисніть клавішу Esc ape для переходу до командного режиму. У цьому режимі можна скористатися клавішами

для переміщення курсору вліво, вниз, вгору та вправо. Ось кілька порад, які допоможуть запам'ятати їхнє призначення:

l - крайня справа і тому переміщує курсор праворуч.

h - крайня ліворуч і переміщує курсор вліво

j - трохи схожа на стрілку, спрямовану вниз. Відповідно, вона переміщає курсор вниз

k — переміщує курсор догори.

У командному режимі є кілька клавіш переміщення. У таблиці наведено різні кнопки та їх функції.

Зверніть увагу, що з кожною командою цієї таблиці за промовчанням використовується число 1. Клавіша j переміщає вниз на 1 рядок, клавіша k переміщає його вгору на 1 рядок і так далі. Всі ці команди можна модифікувати, вводячи перед ними число. Так, наступна команда переміщає вниз не на один рядок, а на п'ять: 5j

Наступна команда переміщає курсор на 75-й рядок файлу, що редагується в даний момент: 75G

А ось команда, яка переміщає курсор на п'яту знизу рядок екрана: 5L

Цей синтаксис справедливий для всіх команд з таблиці, за винятком команди

яка переміщує курсор до першого символу документа, що не є пробілом.

Інші кнопки переміщення.

Крім описаних вище клавіш переміщення курсору, є ще кілька клавіатурних комбінацій, які виконують прокручування тексту на екрані (див. нижче):

Команди для редагування тексту.

У редакторі vi клавіші

не виконують тих дій, яких від них очікується. Для видалення тексту тощо доведеться скористатися різними клавішамиу командному режимі редактора.

Операції над файлами та вихід з редактора vi

Це операції завантаження та збереження файлів у редакторі vi.

- Записати зміни до файлу.

- Завантажити файл для редагування.

- Вийти з редактора без збереження.

Пошук у тексті та заміна тексту в редакторі vi.

Початок шаблону прямого пошуку в командному режимі. Наприклад /ufs .

- Початок шаблону зворотного пошукуу командному режимі.

- Видалення рядка.

- Копіювання тексту у внутрішній буфер.

- Вставка тексту з буфера.

Копіювання, вирізання та вставка тексту в редакторі vi:

Текст із буфера можна вставити на будь-яке місце документа, переміщуючи на потрібне місце курсор і застосовуючи команду Р або Р. Команда

вставляє текст у документ після курсору. Команда

вставляє текст перед курсором. Текст залишається в буфері і після того, як ви вставите його в документ. Тому можна знову використовувати ці команди для вставлення тексту до документа в інших місцях.

Застереження

Редактор vi зберігає в буфері текст тільки останньої операції копіювання тексту в буфер або видалення. Іншими словами, якщо ви виконали команду dd, щоб видалити рядок тексту, а потім виконали команду yy, щоб скопіювати рядок тексту, то в буфері текст, з яким оперувала команда dd, буде заміщений текстом операції yy. Це означає, що з операції dd буде втрачено, тобто. операцію видалення скасувати буде неможливо.

Існує безліч версій Vi. Я представлю вам версію Vi, звану Vim. Vim дуже популярний, тому що у нього є кілька доповнень, які роблять Vi трохи приємнішими (коли демонструватимуться специфічні для Vim команди, я це відзначу). Тут наведено картинку GVim з моєї системи.

Для того, щоб встановити Vim, перейдіть за посиланням зліва або виконайте в терміналі:

sudo apt-get install vim

Хоча в більшості дистрибутивів Linuxйого вже встановлено за замовчуванням. На додачу до покращеного консольного Vi, Vim доступний також у вигляді GVim - прекрасного графічного редактора, який може бути налаштований для використання з чудовою бібліотекою GUI (графічного інтерфейсу користувача) GTK+.

sudo apt-get install vim-gtk

Якщо Vi вам у новинку, спробуйте встановити у системі GVim. Використання Vi в графічній оболонціможе дещо полегшити новачкам життя.

Також можна запустити навчальну програму, набравши в терміналі команду

Vimtutor

Gvimtutor

Ця невелика навчальна програма допоможе за 25-30 хвилин освоїтися у цьому незвичайному для новачка редакторі.

Відкриваємо файл

Перед використанням Vi для редагування файлів вам слід дізнатися, як у Vi переміщатися по файлу. У Vi безліч команд переміщення, багато хто з них ми зараз розглянемо. Для цієї частини навчання знайдіть якийсь малоцінний текстовий файл (TODO: краще англійською) і завантажте його у Vi надрукувавши:

vi myfile.txt

Якщо у вас встановлений Vim, наберіть у консолі:

vim myfile.txt

Якщо ви волієте використовувати GVim:

Gvim myfile.txt

myfile.txtмає бути іменем текстового файлу у вашій системі.

Усередині Vi

Після завантаження Vi на екрані ви повинні побачити частину завантаженого вами текстового файлу. Вітаю – ви вже у Vi! На відміну від більшості редакторів, завантажившись, Vi знаходиться у спеціальному режимі, який називається "командним режимом". Це означає, що якщо ви натиснете клавішу (маленька L), замість появи «l» дома курсора ви побачите, що курсор лише зрушився однією символ вправо. У командному режимі знаки, що набираються на клавіатурі, використовуються як команди для Vi, а не як символи, що поміщаються в текст. Один з найбільш важливих типівкоманд – це команди переміщення. Давайте розглянемо деякі з них.

Переміщуємось за документом

Переміщення у Vi, частина 1

Перебуваючи в командному режимі, можна використовувати клавіші ,,і для переміщення курсору вліво, вниз, вгору та вправо відповідно. Якщо ви використовуєте сучасну версію Vi, ви також можете з цією метою використовувати клавіші зі стрілками. Клавіші ,,і краще, тому що освоївшись з ними, ви зможете переміщатися по файлу, не розмахуючи руками над клавіатурою. Для переміщення по текстового файлувикористовуйте такі клавіші:

Спробуйте використати доки не дійдете до початку рядка. Зауважте, що Vi не дасть вам перескочити на попередній рядок, натискаючи , якщо ви на початку рядка. Так само він не дозволить вам перескочити на наступний рядок, натискаючи наприкінці рядка.

Переміщення у Vi, частина 2

Vi надає спеціальні командидля стрибків на початок та кінець поточного рядка:

    0 (нуль)- Перескочити на перший символ у рядку;

    $ – перескочити на останній символ у рядку.

Оскільки у Vi так багато команд переміщення, його можна використовувати як чудовий інструмент перегляду - «pager»а (як команди more або less). Використовуючи Vi для перегляду, ви швидко запам'ятаєте всі команди переміщення.

Ви також можете використовувати і для переміщення вперед і назадвідразу на сторінку. Сучасні версії Vi (такі як Vim) можуть дозволити використовувати для цього клавіші І

Комбінація означає комбінацію клавіш +. Багато джерелах про Vim можна зустріти саме таке позначення комбінація клавіш. Часто ще можна зустріти і таке позначення: ^F

Переміщення за словами, частина 1

Vi також дозволяє вам переміщатися вліво та вправо за словами:

    w– натисніть переміщення на перший символ наступного слова;

    e– натисніть на наступний останній символ слова;

    b– можна натиснути на попередній перший символ слова.

Переміщення за словами, частина 2

Побавившись із командами переміщення за словами, ви могли помітити, що Vi вважає слова типу «foo-bar-oni» п'ятьма різними словами! Це тому, що Vi за умовчанням поділяє слова пробілами чи знаками пунктуації (які теж вважає словами). Тому foo-bar-oni вважається п'ятьма словами: "foo", "-", "bar", "-" і "oni".

Іноді вам так і треба, а іноді – ні. На щастя, Vi сприймає поняття « великого слова». vi поділяє великі слова лише пробілами та початками рядків. Це означає, що foo-bar-oni складається з п'яти Vi-слів, але є лише одним великим словом Vi.

Переміщення за словами, частина 3

Щоб переміститися на наступне або попереднє велике слово, ви можете використовувати "великі" команди переміщення за словами. Натиснувши такі клавіші, ви потрапите на:

    W- Перший символ наступного великого слова;

    E- Наступний останній символ великого слова;

    B- Попередній перший символ великого слова.

Далекі переходи

Залишилося розглянути ще кілька команд, і можна буде починати записувати їх на шпаргалку. Ви можете використовувати дужки:

    (і ) щоб перейти на початок попередньої та наступної пропозиції.

    { або } (фігурні дужки) – Дозволять перескочити на початок параграфа.

Вихід

Ми розглянули основні команди переміщення, але залишилася ще пара команд, які вам необхідно знати. Надрукувавши:

    :qви повинні вийти з Vi. Якщо не вийде, то ви якимось чином примудрилися змінити файл;

    :q!вийти відкинувши зміни слід командою.

Тепер ви повинні опинитися у командному рядку системи.

Будь-яка команда Vi, що починається з двокрапки («:»), називається командою ex-режиму (an ex-mode command).Це через те, що Vi має вбудований не екранний редактор, що зветься ex. Він може використовуватися як sed для виконання операцій редагування, орієнтованих на рядки. Додатково, як ми бачили, він може використовуватися для завершення роботи. Якщо ви випадково натиснете , перебуваючи в командному режимі, можете опинитися в ex-режимі. У цьому випадку ви зіткнетеся із запрошенням «:», і натискання на Enter буде зрушувати вгору вміст екрана. Для повернення до звичного vi-режиму просто наберіть viта натисніть .

Збереження та редагування

Save(зберегти) та Save as...(зберегти як...)

Ми вже бачили, як використовуючи ex-команду :qвийти із vi.

    :w filename– для збереження під іншим ім'ям;

У Vim (та інших нащадках Vi, типу elvis), можна тримати відкритими одночасно кілька буферів. Введіть команду

    :sp filename.txtдля відкриття файлу filename.txt у новому вікні;

    :sp(без імені файлу) відкриє додаткове вікнодля активного буфера

Щоб перейти між вікнами, натисніть ,(Двічі +) . Будь-яка з команд :q, :q!, :wі :xставитись тільки до активного вікна.

Просте редагування

Ось і настав час зайнятися вивченням простих командредагування. Команди, що розглядаються тут, вважаються «простими» через те, що залишають вас у командному режимі. Більш складні команди автоматично переводять вас у режим введення тексту, що дозволяє додавати до буфера символьну інформацію, що набирається на клавіатурі; їх розглянемо пізніше.

    J– приєднання наступного стоку до поточного;

    r+символ- Заміна символу на символ;

    dd- Видалення поточної стоки.

Повторення та видалення

Повторити будь-яку команду редагування ви можете натискаючи клавішу<. > (крапка). Якщо спробуєте, можете побачити, що друк dd…видалить 4 рядки, а J……об'єднає сім рядків. Як завжди, Vi забезпечує вас різними зручними засобами скорочення трудовитрат.

Видаляти текст можна також комбінуючи команду dз будь-якими командами переміщення. Наприклад, dwвидалити частину тексту від поточної позиції курсору на початок наступного слова; d)видалить аж до наступного кінця речення, і d)видалить весь залишок абзацу. Поекспериментуйте із командою dта іншими командами редагування, доки не відчуєте себе з ними впевнено.

Режим введення тексту

Ми вже розглянули, як vi переміщатися, виконувати читання\запис файлів і основні операції редагування. Однак я ще не пояснив, як надрукувати довільний текст! Зроблено це було спеціально, оскільки спочатку режим введення тексту в Vi трохи складний. Тим не менш, після того, як ви станете спокійно почуватися в режимі введення тексту, ця складність (і гнучкість) стане справжньою цінністю.

У режимі введення тексту ви можете вводити текст прямо на екран, як у більшості інших екранних редакторів. Зробивши свої зміни, ви можете натиснути

    Esc– повернутися до командного режиму;

    iабо a– повернутися/увійти в режим введення.

Не забудьте, ввівши свій текст, натиснути для повернення до режиму команд.

Комбіновані команди

Vi дійсно стає потужним, коли ви починаєте використовувати суміщені (або комбіновані) команди, типу d(і cw. Додатково до таких команд, ви також можете поєднувати числа з будь-якими командами переміщення, як 3w, яка повідомляє Vi про необхідність проскочити вперед на три слова Ось ще кілька прикладів таких комбінованих команд: 12b, 4j.

Дозволяючи комбінації (число)(команда переміщення), Vi дозволяє ще поєднувати команди dабо cз числами чи командами переміщення. Так d3wвидалить наступні три слова, d2jвидалить поточну та два наступні рядки, і т.д. Спробуйте трохи поекспериментувати із командами cі d, поєднаними з переміщеннями, щоб відчути, яким потужним та лаконічним може бути редагування у Vi. Коли ці команди стануть вашою другою натурою, ви зможете редагувати файли з неймовірною швидкістю.

Збільшення продуктивності

Щойно ми розглянули, як переміщатися, зберігати та завершувати роботу, виконувати просте редагування та видалення, користуватися режимом введення тексту. З цим багажем знань (лише показаним на шпаргалці) ви вже здатні, використовуючи Vi, впоратися практично з будь-яким завданням.

Однак, у Vi є ще багато потужніших команд. У цьому розділі ви дізнаєтеся як ви різати (cut), скопіювати (copy) і вставити (paste), знайти (search) і замінити (replace) текст, а так само, як використовувати автоматичний відступ(Autoindent). Ці команди допоможуть Vi бути більш приємним та продуктивним.

Екранний режим

Найкращим способом вирізати та вставляти фрагменти тексту є використання екранного режиму, спеціального режиму, доданого в сучасних версіях Vi, таких як Vim та elvis. Ви можете уявляти собі екранний режимяк режим підсвічування тексту. Виділений текст можна скопіювати або видалити, а потім вставити. Якщо ви використовуєте GVim, виділити шматок тексту ви можете просто натиснувши ліву кнопкумишки та протягнувши курсор по потрібній області. Увійти в екранний режим ви можете ще натиснувши v (це може бути вашою єдиною можливістю, якщо ви використовуєте Vi в консолі). Потім, рухаючи курсор командами переміщення (зазвичай стрілками), можна виділити область тексту. Закінчивши виділення, ви готові вирізати чи копіювати текст.

Щоб скопіювати текст, натисніть y(Від слова "yank"). Щоб вирізати текст, натисніть d. Ви будете переведені назад у командний режим. Тепер перемістіться в місце, де ви хочете вставити вирізаний або скопійований текст, і натисніть P(заголовна) для вставки перед курсором або p(маленька) для вставки за курсором. Все, копіювання\вирізання та вставка виконані! А тепер виконайте ще кілька разів процедуру копіювання\вирізання та вставки перед тим, як перейти до наступного розділу.

Для того, щоб вставити в редактор вміст буфера обміну (у який Ви скопіювали інформацію по + ) необхідно встановити утиліту xclip

apt-get install xclip

і скопіювавши потрібний текствиконати у командному режимі редактора

:r! xclip -oта натисніть .

Заміна тексту

Для заміни зразків тексту ми використовуємо режим ex. Якщо ви хочете замінити перший зразок, що попався в поточному рядку, наберіть:

:s/ // та натисніть , де - що хочете замінити, та - на що.

Для заміни всіх збігів з еталоном у поточному рядку використовуйте команду:

    :%s/ //g- Заміна кожного входження зразка у всьому файлі (що зазвичай і потрібно);

І не забудьте, набравши команду, натиснути .

Виділення

Vi підтримує автоматичний відступ під час редагування вами вихідників (текстів програм). Більшість сучасних версій Vi (таких як Vim) можуть самостійно включати абзацний авто відступ при редагуванні вами вихідних файлів (наприклад, файлів типу.c).

    :set autoindent- Включити автомобільний відступ;

    :set tabstop=(число)– встановити авто табуляцію (де число є число символів табуляції).

Якщо авто відступ увімкнено, ви можете використовувати для зменшення та збільшення рівня відступу.

Посилання

Корисне

Шпалери з описом клавіатурних скорочень та команд.

Розмір: 1366х768
Для завантаження натисніть на зображення, у вікні, натисніть на зображення ще раз для збільшення і натисніть правою кнопкою«Зберегти зображення як…»

Комп'ютери нового покоління всі як один побудовані на базі операційних систем із графічним інтерфейсом. Сьогодні навіть не всі пам'ятають, що якихось 40 років тому все керування виконувалося за допомогою спеціальних текстових команд, а робота з комп'ютером нагадувала одностороннє спілкування у чаті. І незважаючи на колосальні зміни у світі електроніки, залишилося чимало шанувальників командного рядката продуктів, керованих виключно за допомогою текстових команд. Наприклад, редактора vi, який по праву вважається одним із найзручніших і гнучких інструментівдля набору текстів до цього дня. У нижче викладеному матеріалі розглянемо докладніше, що являє собою vi. Інструкція до редактора, основні команди та можливості – про все це читайте нижче.

Що таке vi?

За своєю суттю vi являє собою ні що інше, як класичний текстовий редактор, яких було чимало в період з початку 70-х до кінця 90-х. Саме цей ил розроблений ще 1976 року. Ідея створення нового спрощеного текстового редактораспала на думку Білла Джоя, який на той час користувався іншим популярним продуктом - ed. На думку Джоя та його колег, ed був надто складним і «прості смертні» не могли його освоїти повною мірою. З цієї причини Джордж Колоріс створив свій власний текстовий редактор, іронічно названий «редактором для простих смертних», а вже потім Білл модифікував його і привів до сучасного вигляду, що існує до цього дня.

Системні вимоги

Жодних попередніх вимогдля освоєння командного рядка та текстових редакторів на зразок vi не існує. Можна починати з нуля і на будь-якій платформі, будь то UNIX-подібні системи (і «форки» від них) або дистрибутиви на базі Linux. У кожну їх можна встановити vi у тому чи іншому вигляді. Редактор vi для Windows також існує.

Варіанти клієнтів

Перед тим, як почати працювати з vi, необхідно вибрати відповідний клієнт. Безумовно, можна користуватися і оригінальним редактором, але він буде обмежений у можливостях, та й виглядає занадто заплутано, тому варто звернути увагу на такі додатки:

  • Vim – це модифікована версіякласичний редактор. Головною особливістюпрограми є можливість встановлювати користувацькі розширення, такі як виділення синтаксису, підтримка Unicode, підтримка макросів, збереження окремих сеансів та багато іншого. Існує також версія із графічним інтерфейсом під назвою GVim.
  • Elvis - один із перших клонів vi, написаний мовою програмування C і доступний на всіх платформах відразу. Це повноекранний редактор, який підтримує Windows та підсвічування синтаксису.
  • Vile - спроба поєднатися все найкраще з двох популярних текстових редакторів. Серед користувачів текстовими редакторами Emacs та vi існує негласна ворожнеча. Розробники ville спробували об'єднати ключові особливостіобох програм, щоб надати користувачам універсальний інструментдля роботи із текстом.
  • Nvi – класичний редактор на основі vi, перекомпільований спеціально для систем FreeBSD.
  • Viper - це навіть не окремий клієнт, а лише плагін для популярного текстового редактора Emacs, який дозволяє емулювати команди текстового редактора vi.

Початок роботи з vi

Швидше за все, для роботи з редактором навіть не доведеться нічого завантажувати. Більшість Linux-дистрибутивів поставляються з vi у комплекті. Власне для запуску необхідно лише ввести відповідну команду та вказати файл, який має бути відкритий. Якщо ви хочете відкрити файл у vim, то потрібно написати - "vim *назва файлу*.txt". Відразу після цього перед вами постане документ. Для відкриття його в графічний інтерфейс, необхідно замінити команду на - "gvim *назва файлу*.txt". Спочатку ви потрапите до режиму команд. Редактор vi передбачає роботу у двох режимах: режим редагування та режим команд. Перший служить для введення тексту, а другий для навігації та виконання функцій на кшталт збереження. Почнемо з командного режиму та навігації.

Навігація

Спочатку варто ознайомитися з тим, які команди редактора vi дозволяють пересувати курсор у документі. В основному для цього використовуються клавіші h, j, k, l, які відповідають за переміщення вліво, вниз, вгору та вправо відповідно. У принципі, в сучасних версіях vi, включаючи vim та графічні «форки», підтримується робота зі стрілками, але, змусивши себе використовувати класичний варіант, Ви з часом звикнете і зрозумієте, що так набагато швидше та зручніше. Єдина особливість, яка може викликати здивування – відсутність можливості переміститися на верхній рядокза допомогою h і l для переміщення вгору і вниз завжди використовуються кнопки j і k. Для переміщення на початок або кінець рядка використовуються клавіші 0 та $. Для переміщення між сторінками використовуються сполучення клавіш Ctrl+F та Ctrl+B.

Для переміщення між словами використовуються кнопки w, e, b. Щоб миттєво переміститися до першого символу, натисніть w. Для переміщення до останньому символунаступного слова, натисніть E. Щоб помістити перший символ попереднього слова, натисніть b. Тут теж є невелика заковика. Справа в тому що складні словаредактор ділить по пробілах і тирі на окремі слова. Це означає, що вираз - night-drive вважатиметься трьома різними словами. Щоб не витрачати час на перескакування через тире, можна використовувати команди з великими літерами, тобто W разом w або B разом b.

Для більших стрибків використовуються дужки () і (). Перші допомагають переміщатися між пропозиціями, інші між цілими абзацами.

Найбільш зручний спосібпереміщення - це переміщення рядками і ключовим словам. Для того, щоб перемістити курсор на певний рядок, необхідно ввести номер рядка і G (повинна бути заголовна G). Для переміщення до конкретному слову, необхідно розпочати пошук за допомогою символу /. Наприклад, якщо ви хочете знайти слово anaphora, введіть /anaphora та натисніть Enter. Для переміщення між пошуковими словами, використовуються клавіші n та N.

Редагування та збереження

Спочатку з'ясуємо, як вийти з редактора vi. Зробити це можна за допомогою команди:q, яка просто закриє програму без будь-яких змін. Варто зазначити, що закрити програму не вийде, якщо в документ було внесено будь-які зміни. Це захист від втрати інформації, тому перед виходом завжди потрібно зберігати внесені дані. Збереження у редакторі vi виконується за допомогою команди w. Команди можна поєднувати. Наприклад, ввівши:wq, ви одночасно збережете дані та закриєте програму. Але це не все. Якщо ви хочете зберегти змінений документ у новому файлі, то потрібно скористатися командою редактора vi - "Зберегти у файл", яка реалізується за допомогою введення: w * ім'я файлу *. txt.

Тепер поговоримо про «просте» редагування, яке зав'язане на схожих командах, без зміни змісту документів. Наприклад, для видалення будь-яких символів використовується клавіша x, а для приєднання двох рядків один до одного використовується клавіша J. Для видалення цілого рядка використовується подвійне натисканняклавіші d. Замінити символи можна за допомогою клавіші r.

Будь-яку з наведених вище команд можна продублювати (або повторити ще кілька разів), використовуючи клавішу. (Точку). Приміром, можна видалити відразу чотири рядки, ввівши dd….

Ці команди можна поєднувати. Ми вже знаємо, що за допомогою дужки можна переміститися в кінець рядка, а за допомогою дужки можна стрибнути в кінець параграфа. Задіявши разом з ними клавішу d, можна видаляти цілі рядки та параграфи без зайвої витрати часу.

Знаючи стільки команд редактора vi для видалення тексту, необхідно дізнатися, як все віддалене відновити (мало що). Для цього використовується клавіша u, яка дозволяє зробити крок назад незалежно від того, яка дія була виконана до цього (якщо, звичайно, це не закриття програми).

Режим редагування

Якщо ви ознайомилися з командами для управління текстовим редактором, час переходити до його безпосереднього завдання - введення тексту. Сам процес введення тексту, природно, нічим не відрізняється від такого в будь-якому іншому редакторі, але важливо завжди пам'ятати про те, що вам постійно доведеться перемикатися між режимами редагування та команд. Щоб перейти в режим редагування, натисніть клавішу i або a (від цього залежатиме лише положення курсору в тексті). Після цього одразу ж можна приступити до набору. Весь текст буде вводитися в одну лінію, доки ви не скористаєтеся клавішею o, яка створить новий рядок, або командою cc, яка замінить поточний рядок новим текстом. Щоб повернутися до режиму команд, скористайтеся клавішею Esc.

Візуальний режим, копіювання та вставка

Користуючись ми часто використовуємо функцію копіювання та вставки тексту. Ми звикли до гарячих клавішам Ctrl+ C і Ctrl + V в сучасних операційні системитому робота в vi може здатися складною. Насправді треба лише перейти у візуальний режим, після чого за допомогою вже вивчених команд виділити і скопіювати потрібний текст. Копіювання в редакторі vi (як і вставка) працює лише у спеціальному режимі visual (активується кнопкою v). У візуальному режимі частина тексту підсвічується в документі. Підсвічену область можна змінити, використовуючи клавіші переміщення та їх комбінації. Після того, як буде вибрано потрібну область, достатньо натиснути y для копіювання тексту або d для його вирізання (видалення з виділеної області). Вставити текст так само просто - перемістіть курсор у потрібну областьта натисніть P. Текст миттєво опиниться в області за курсором.

Складні команди

Під складними командами маються на увазі команди комбіновані. Вони вже були розглянуті вище, але на них варто акцентувати ще раз, оскільки завдяки правильним комбінаціям можна досягти максимальної продуктивностіта зручності.

Також можна використовувати цифри з деякими командами переміщення. Наприклад, якщо ви хочете переміститися не на одне слово, а відразу на 6, то замість шестиразового натискання w можна просто ввести 6w. З числами можна комбінувати одразу дві команди. Наприклад, щоб видалити одразу кілька слів, можна скористатися командою d5w, яка видалити одразу 5 слів. Відповідно, комбінації з дужками видалятимуть рядки, абзаци тощо.

Заміна тексту

З додаткових можливостейварто виділити можливість замінювати цілі шматки тексту, а також всі шматки, що збігаються, за цілим документом. Це задоволена корисна опція, особливо коли мова йдепро програмному кодіабо заповнення великих анкет з даними, що повторюються. Уявімо, що у вибраному рядку тексту є вираз explanation, але ми хочемо поміняти його на інше, наприклад giving food for thought. У цьому випадку команда виглядатиме таким чином - :s/explanation/giving food for thought/. Щоб замінити всі згадки explanation у документі, можна злегка ускладнити команду, тоді вона виглядатиме так: %s/explanation/giving food for thought/g.

Замість ув'язнення

Отже, тепер ви розумієте, як управляти редактором vi. Знаєте все базові команди, як змінити та редагувати текст. Познайомилися з корисними командамита можливостями. Настав ідеальний час, щоб випробувати все це практично. Незважаючи на свій злегка відразливий вигляд і високий поріг входження, vi після недовгої практики може виявитися для вас найбільш зручним інструментомв роботі. Головне - не панікувати, записати всі вивчені команди, сценарії та повторювати їх усі на практиці, щоб довести набуті навички до автоматизму.

Редактор Vi- універсальний повноекранний текстовий редактор у середовищі UNIX. Редактор Viприсутній у будь-якій системі Linux(навіть мінімальної конфігурації) та обов'язково запуститься з командного рядка Linuxу катастрофічній ситуації. У користувача, таким чином, завжди збережеться можливість відредагувати конфігураційні файлидля приведення системи в робочий стан. Тому кожному користувачеві Linuxнеобхідні хоча б основні навички роботи в Vi.

Основні поняття

Будь-коли при роботі в редакторі Viви знаходитесь в одному з трьох режимівредактора:

  • командний режим ( command mode);
  • режим введення ( insert mode);
  • режим останнього рядка ( last line mode).

Під час запуску редактора Viви опиняєтеся в командному режимі. У цьому режимі можна надавати команди для редагування файлів або перейти до іншого режиму. Наприклад, вводячи x у командному режимі, ми видаляємо символ, на який вказує курсор. Клавіші-стрілки переміщують курсор по файлу, що редагується. Як правило, команди, які використовуються в командному режимі, складаються з одного або двох символів.

Основне введення та редагування тексту здійснюється в режимі введення. При використанні редактора Viосновний час, швидше за все, проводитиметься саме у цьому режимі. Перехід у режим введення з командного режиму здійснюється командою i (скорочення від insert). Перебуваючи в режимі введення, можна вводити текст у місце, куди вказує курсор. Вихід із режиму введення в командний режим здійснюється клавішею Esc.

Режим останнього рядка - спеціальний режим, В якому редактору даються складні команди. Під час введення цих команд вони відображаються в останньому рядку екрана (звідси походить назва режиму). Наприклад, якщо ввести командному режимі команду: , то здійсниться перехід у режим останнього рядка, і можна буде вводити такі команди, як wq (записати файл і залишити редактор Vi) або q! (вийти з редактора Viбез збереження змін). У режимі останнього рядка зазвичай вводяться команди, назва яких складається з кількох символів. У цьому режимі в останній рядок вводиться команда, після чого натискається клавіша Enter і команда виконується.

Запуск редактора Vi

Для з'ясування всіх концепцій редактора Viзапустимо його та створимо новий файлпо імені test:

$ vi test ~ ~ ~ ~ ~ ~ "test"

Колонка символів ~ позначає порожні рядки, курсор знаходиться на початку першого рядка

Введення тексту

Редактор Vi зараз перебуває у командному режимі. Натисніть клавішу i і редактор перейде в режим введення тексту. Тепер вводимо, наприклад, наступний текст:

Багато користувачів віддають перевагу наданому казками редактору Emacs. ~ ~ ~ ~ ~

Введіть будь-яку кількість рядків після кожного натискання клавішу Enter. Виправити помилки можна за допомогою клавіші Backspace. Щоб вийти з режиму введення та повернення до командного режиму, натисніть клавішу Esc .

У командному режимі для руху файлом можна використовувати клавіші-стрілки. Якщо файл лише один рядок, то при спробі натиснути клавішу зі стрілкою вгору або вниз редактор, можливо, буде подавати звуковий сигнал.

Крім команди i є ще кілька способів вставити текст. Так, команда a починає вставляти текст після поточного положеннякурсора, а не прямо в поточну. У зв'язку з тим, що текст був набраний з друкарською помилкою наведемо за допомогою клавіш-стрілок курсор до пробілу, що розділяє слова наділенийі казками. Тепер натисніть клавішу a (редактор перейде в режим введення) і введемо під, після чого натисніть Esc і повернемося в командний режим. На екрані буде наступне:

Для введення тексту з наступного рядка, використовуємо команду o. Натисніть цю клавішу і введемо один-два рядки тексту:

Багато користувачів вважають за краще наділений підказками редактор Emacs. Вибір текстового редактора є питанням індивідуального смаку. ~ ~ ~ ~

Видалення тексту

У командному режимі кожне натискання кнопки x видаляє символ, на який вказує курсор.

Можна видаляти цілі рядки командою dd (тобто, натиснувши клавішу d двічі поспіль). Якщо курсор стоїть на другому рядку, і ви введете команду dd, на екрані залишиться таке:

Багато користувачів вважають за краще наділений підказками редактор Emacs. ~ ~ ~ ~ ~

Для видалення слова, на яке вказує курсор, можна використати команду dw . Підведіть курсор до слова наділенийі введіть dw , потім до слова підказкамиі знову введіть dw. Результат буде наступним:

Багато користувачів віддають перевагу редактору Emacs. ~ ~ ~ ~ ~

Зміна тексту

Окремі частини тексту можна замінювати іншими; для цього використовується команда R. Підведіть курсор до першого символу у слові Emacs, натисніть клавішу R і введіть слово vi:

Багато користувачів віддають перевагу редактору vi. ~ ~ ~ ~ ~

Дія команди R нагадує дію команд i та a, проте при команді R новий текстне вставляється, а стирає старий.

Команда r замінює один символ, саме той, на який вказує курсор.

За допомогою команди ~ можна поміняти регістр літери, яку вказує курсор (з верхнього на нижній і навпаки). Підіб'ємо курсор до першого символу в слові viі дамо команду ~:

Багато користувачів віддають перевагу редактору Vi. ~ ~ ~ ~ ~

Команди для руху курсору

Крім клавіш-стрілок для руху курсору можна використовувати клавіші h, j, k і l. Вони зрушуватимуть курсор відповідно вліво, вниз, вгору та вправо. Цими командами можна скористатися, якщо (з будь-якої причини) клавіші-стрілки діють неправильно. Команда w переміщає курсор початку наступного слова; команда b переміщує курсор початку попереднього слова.

Команда (клавіша нуль) переміщає курсор початку поточного рядка, а команда $ переміщає курсор у її кінець.

Під час редагування великих файлівдля перегортання цілих екранів вперед (тобто вниз) і назад (вгору) використовуються команди відповідно Ctrl-F і Ctrl-B.

Для переміщення курсору в кінець файлу використовується команда G, а команда 10G, наприклад, помістить курсор на рядок з номером 10 . Для того, щоб перемістити курсор на початок файлу, можна використовувати команду 1G .

Команди руху курсору можна поєднувати з іншими командами, наприклад з командами видалення тексту. Наприклад, команда d$ видалить усе, що знаходиться між поточним положенням курсору та кінцем рядка; команда dG видалить все, що знаходиться між поточним положенням курсору та кінцем файлу тощо.

Збереження змін та вихід з редактора Vi

Для виходу із редактора Viбез збереження змін, зроблених у файлі, використовується команда q! .

Для виходу із редактора Viіз збереженням зроблених змін використовується команда: wq.

Перемикання між файлами

Для того, щоб приступити до редагування іншого файлу, використовується команда:e, яку слід вводити тільки після збереження змін, що зробили командою:w, в іншому випадку Viвідмовиться розпочати редагування наступного файлу.

Вставлення вмісту інших файлів

Включити у поточний файлвміст іншого файлу можна командою: r. Наприклад, команда:r foo.txt вставить вміст файлу foo.txtтекст починаючи з поточного положення курсору.

Допомога у роботі з редактором Vi

Як і у випадку з будь-якою програмою в системі Linuxнасамперед слід звернутися до екранної документації програми Vi. Зазвичай (крім режимів відновлення після системних збоїв) доступна більш сучасна та покращена версія Vi - Vim, що має аналогічний Viінтерфейс та масу додаткових можливостей. Детальний посібникпо Vimможна отримати, запустивши цей редактор і віддавши команду: help.