Команди переключення між режимами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Команди переключення між режимами



ESC Переводить з режиму вставки в командний режим. Якщо не впевнені, в якому режимі знаходитесь – краще зайвий раз натиснути ESC
  Команди вставки: переводять з командного режиму в режим вставки. При застосуванні команд вставки текст не знищується.
I і Команди 'i' та 'I' – “insert”. Команда 'i': починає вставляти текст перед символом, що розташований під курсором. Для вставки нового рядка натисніть RETURN. Команда 'I' починає вставляти текст із початку поточного рядка.
A a Команди 'a' та 'A' – “append”. Команда 'a' працює точно так, як команда 'i', тільки вставка тексту починається після курсору, а не перед ним. Це є однією з можливостей додавання тексту в кінець рядка. Команда 'A' починає вставку тексту наприкінці поточного рядка.
O o Команди 'o' та 'O' – “open”. Відкривають новий рядок і вставляють текст. Команда 'o' відкриває новий рядок під поточним рядком, команда 'O' відкриває новий рядок над поточним рядком. Після того, як новий рядок відкритий, обидві команди працюють аналогічно команді 'I'.
  Команди переходу в режим редактора ‘ex’.
Q Переводить з командного режиму vi в режим редактора ex. Після виконання цієї команди буде продовжуватись редагування того самого файлу. Ви можете повернутися в режим редактора vi, набравши 'vi' у редакторі ex.
: Переводить в режим тимчасового переключення в 'ex' для виконання однієї команди редактора ex. В інформаційному рядку з'являється двокрапка ‘:’ як підказка-вказівка для введення ex-команди. Ви можете ввести ex-команду, закінчити її символами RETURNчи ESC, після чого цю команду буде виконано. Потім вам запропонують натиснути клавішу RETURNдля повернення в командний режим vi.

Команди виходу

Існує кілька шляхів виходу з редактора vi. Якщо ви знаходитесь в режимі вставки, то перший крок – перейти в командний режим (клавіша ESC). Далі можна використовувати такі команди:

ZZ Здійснює вихід з командного режиму vi. Вміст буфера редагування записується у файл, що редагувався, тільки за умови, що були зроблені які-небудь зміни. При цьому ви повертаєтесь в ту командну оболонку, з якої був запущений редактор vi.
:x Діє так само, як і ZZ. Фактично означає перехід в режим 'ex' з наступним виконанням команди x.
:q Намагається здійснити вихід з редактора vi без запису з буфера редагування у файл. Однак, якщо з моменту останньої команди 'w' до буферу редагування вносились зміни, то vi видає попереджуюче повідомлення, і вихід з редактора не здійснюється. vi також видає діагностику, якщо в списку аргументів залишилися імена ще невідредагованих файлів. Зазвичай ви хочете зберегти усі ваші зміни; для цього вам належить набрати команду ':w'.
:q! На відміну від попередньої, ця команда скасовує сеанс редагування. Знак оклику вказує редакторові vi на необхідність безумовного виходу. Вміст буфера редагування не зберігається.
:wq Переходить в режим'ex', зберігає зміни буфера редагування в поточний файл (команда w), після чого здійснює вихід з редактора (команда q).
:wq! Скасовує перевірку, що звичайно виконується перед командою 'w'. Наприклад, якщо ви володієте файлом, але не маєте дозволу на запис у нього, команда ':wq!' дозволить вам змінити вміст.

Увага! Для виходу з редактора vi (як і з інших програм UNIX) не можна використовувати комбінацію клавіш CTRL+Z, оскільки ця комбінація не завершує програму, а лише призупиняє її (див. Лабораторну роботу 5).

У режимі вставки можуть використовуватися такі символи:

BKSP У поточному рядку повертає курсор назад на один символ. Останній символ, набраний перед BKSP, видаляється з вхідного буфера, але залишається на екрані дисплея.
Ctrl-V Відміняє спеціальне значення наступного набраного символу. Використовуйте Ctrl-V для вставки керуючих символів.
Клавіші курсору Можуть діяти нормально (переміщати курсор) або ні (вводити якісь незрозумілі символи) в залежності від версії редактора і налаштовувань терміналу

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

Команди редактора vi, що діють в командному режимі

Далі описані лише основні, найнеобхідніші команди. Більшість команд можуть використовувати лічильник, що стоїть перед ними і показує число повторів команди. Цей параметр у наступних описах команд не заданий, але він мається на увазі, якщо не скасований яким-небудь аргументом, що стоїть перед ним. Коли редактор vi одержує команду неправильного формату, він сигналізує про це.

Переміщення курсору

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

l SPACEBAR ® Переміщає курсор на один символ вперед. Якщо заданий лічильник, то переміщає вперед на зазначене число символів. Ви не можете переміститися за межу кінця рядка.
h BKSP Переміщає курсор на один символ назад. Якщо заданий лічильник, то переміщає назад на зазначене число символів. Ви не можете переміститися за межу початку рядка.
+ RETURN Переміщає курсор вниз на початок наступного рядка.
J Ctrl-N ¯ Переміщає курсор вниз на один рядок, залишаючи його в тому ж стовпчику.
Переміщає курсор на початок попереднього рядка. Якщо заданий лічильник, то курсор переміщається вгору на зазначене число рядків.
K Ctrl-P ­ Переміщає курсор на один рядок вгору, залишаючи його в тому ж стовпчику. Якщо заданий лічильник, то курсор переміщається на зазначене число рядків.
O Переміщає курсор на перший символ поточного рядка.
^ Переміщає курсор на перший символ рядка, такий, що не є міткою табуляції чи пробілом. Це дуже зручно при редагуванні тексту з форматованими відступами (наприклад, тексту програми).
$ Переміщає курсор у кінець поточного рядка. Зверніть увагу, що курсор знаходиться над останнім символом у рядку.
w b e Переміщає курсор вперед на початок наступного слова (w), назад на початок поточного слова (b), або на останній символ поточного слова (e), де слово визначене як рядок буквено-числових символів, розділених пунктуацією, мітками табуляції, символами нового рядка чи пробілами.
% Переміщає курсор на узгоджуючий роздільник, яким можуть бути кругла, операторна чи фігурна дужки. Це дуже зручно при узгодженні пар вкладених круглих, операторних і фігурних дужок (наприклад, при редагуванні тексту програми).

 

Команди екрана

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

Ctrl-U Ctrl-D "Прокручує" екран на половину вікна нагору (Ctrl-U) чи вниз (Ctrl-D).
Ctrl-F Ctrl-B Посторінково перегортає екран уперед та назад. Якщо можливо, то між сторінками зберігаються два нерозривні рядки. Заданий попереду лічильник указує число сторінок, на яке треба пересунути вперед чи назад.
Ctrl-G Показує стан редактора vi в інформаційному рядку: ім'я файлу, що редагується, чи був він змінений, номер поточного рядка, число рядків у файлі і відсоток файлу (у рядках), що передує місцеві перебування курсору.
Ctrl-R Ctrl-L Перемальовує вміст екрана. Використовуйте цю команду для витирання будь-яких системних повідомлень, що можуть накладатися на інформацію, що міститься на вашому екрані. Зверніть увагу, що системні повідомлення не впливають на файл, що редагується вами.

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

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

x Видаляє символ, що знаходиться під курсором.
< n >x Видаляється < n > символів вправо від символу, що стоїть під курсором.
X Видаляє символ, розташований перед курсором.
< n >X Видаляється < n > символів у зворотному напрямку, починаючи із символу, що стоїть перед курсором.
d < mov > Видаляє текстовий об'єкт. Команда 'd' бере як аргумент команду переміщення курсору < mov >. Якщо < mov > задає переміщення в межах рядка, то здійснюється видалення від курсору до кінця текстового об'єкта, обмеженого аргументом. Видалення в прямому напрямку (вперед) видаляє символ, розташований під курсором; видалення в зворотному напрямку (назад) не виконується. Якщо < mov > задає переміщення на інший рядок, то видалення здійснюється з поточного рядка, включаючи його самого, до текстового об'єкта, обмеженого аргументом. Наприклад: dl знищує символ, що стоїть під курсором; d5l знищує 5 символів, починаючи з того, що стоїть під курсором; d3Jзнищує 3 рядки, починаючи від поточного рядка вниз
dd Видаляє цілі рядки.
D Видаляє усі символи від позиції курсору, включаючи її, до кінця поточного рядка.

 

Переміщення тексту

Переміщення тексту здійснюється командами видалення, копіювання і вставки текстових блоків. Для цього зарезервовано 9 буферів видалення (позначених цифрами від 1 до 9), 26 буферів для копіювання (позначених літерами від a до z) і один “безіменний” буфер, який використовується за замовчуванням. Якщо необхідно вказати певний буфер, перед будь-якою командою копіювання або вставки вводяться подвійні лапки ("), а за ними – позначення буфера. Для команд вставки (put) позначення буфера може бути цифрою від 1 до 9 або літерою від a до z. Для команд копіювання (yank) позначення буфера може бути літерою від a до z або від A до Z. Якщо ви копіюєте текст у буфер з ім'ям ' A ' замість ' a ', то текст додається до вмісту буфера ' a ' (так само для будь-якого іншого буфера). При видаленні вилучений текст автоматично заноситься в стек буферів, пронумерованих від 1 до 9, тобто щойно видалений блок поміщається в буфер 1, блок з буферу 1 переміщається у буфер 2 і так далі. Щойно вилучений текст також розміщається в “безіменному” буфері.

Таким чином, в буферах 1-9 знаходяться блоки тексту, які було вилучено, в буферах a-z – блоки тексту, які було скопійовано, а в безіменному буфері – блок тексту, який було вилучено під час останньої операції або скопійовано без зазначення буфера.

Наприклад, команда "4p поміщає вміст буфера видалення з номером 4 у ваш буфер редагування під поточним рядком. Якщо ім'я буфера-джерела не зазначено, то текст вставляється з "безіменного" буфера. Таким чином, дуже просто видалити текст, потім пересунути курсор у те місце, куди ви хочете вставити вилучений текст, і після цього вставити текст у нове місце за допомогою команди ' p ' або ' P '.

Пойменовані буфери найбільш зручні для збереження сукупності декількох частин тексту, які ви хочете мати постійно напоготові для пізнішого доступу до цих текстів, або їхнього переміщення і перерозміщення. Наприклад, для копіювання рядка з файлу в буфер ' a ' наберіть "ayy. Для того, щоб помістити цей текст назад у файл, наберіть "ap.

Слід зазначити, що вміст пойменованих буферів не руйнується при переключенні файлів. Тому ви можете видалити чи скопіювати текст у буфер, відкрити новий файл і потім виконати команду ' p '. Вміст буферів губиться при виході з редактора, тому будьте обережні.

["< buf >]p Вставляє текст із буфера < buf > в буфер редагування під поточним рядком чи після курсору, в залежності від того, містить буфер повний чи рядок ні.
["< buf >]P Вставляє текст із буфера < buf > в буфер редагування або над поточним рядком, або перед курсором, у залежності від того, містить буфер повний рядок чи ні.
["< buf >]y < mov > Копіює текст із буфера редагування в буфер < buf >. Аргумент < mov > обмежує об’єкт, що копіюється (аналогічно команді видалення ‘d’ – див. вище.
["< buf >]yy ["< buf >]Y Копіюють один рядок, чи, якщо заданий лічильник, кілька рядків.

 

Відміна/повтор операцій

u Скасовує результат останньої команди вставки чи видалення. Після виконання команди вставки команда 'u' видаляє вставлений текст, а після команди видалення – вставляє текст назад.
U Відновлює поточний рядок у його первісному стані, перш ніж він був відредагований, незалежно від того, скільки операцій редагування ви здійснили з того моменту, як ви перейшли на нього.
. Повторює останню команду вставки чи видалення.

 

Пошук

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

/[< pat >]¿ ?[< pat >]¿ Здійснює пошук тексту, що відповідає шаблону < pat >, у прямому (/) чи зворотному (?) напрямку. Рядок є дійсним регулярним виразом. Якщо шаблон < pat > не заданий, то для пошуку використовується останнє значення < pat >, що використовувалось раніше. (¿ – натискання клавіші “RETURN”)
n N Повторює останню команду пошуку. Команда 'n' повторює пошук у тому ж напрямку, що й остання команда пошуку, команда 'N' – у протилежному напрямку.
f < ch > F < ch > Знаходить символ < ch > у поточному рядку. Команда 'f' виконує пошук у прямому напрямку, команда 'F' – у зворотному.
t < ch > T < ch > Встановлює курсор над символом < ch >.
; , Знак “;” повторює пошук останнього символу. Знак “,” змінює напрямок пошуку на протилежний.

Команди редактора ex

Введення двокрапки (:) при перебуванні в командному режимі видає підказку-запрошення (:) у рядку стану. Це підказка для введення команди, доступної в строковому редакторі ex.

В основному, ex -команди дозволяють вам записувати до і читати з файлів, переключатись в shell чи змінювати файли, що редагуються. Більшість цих команд виконує дії, що впливають на "поточний" за замовчуванням файл. Поточним звичайно вважається файл, що ви вибрали при запуску редактора vi, хоча поточний файл може бути змінений командою file (f) чи командою next (n).

Як імена більшості ex-команд використовуються англійські слова, а доступною для використання абревіатурою є початкові букви цих слів. В подальших описах згадуються тільки абревіатури як найчастіше використовувана форма запису команди.

Загальна форма команди ex досить складна. Для всіх ex-команд використовується наступний формат:

[address][command][!][parameters][count][flags]

Усі частини необов'язкові, в залежності від команди та її опцій.

Більшість команд використовує адреси, що стоять попереду і визначають рядки, над якими необхідно виконувати дії. Ряд команд також може містити наступний за ними лічильник count, що показує число рядків, що захоплюються при виклику команди. Числа count при необхідності округляються вбік меншого значення. Таким чином, команда ' 10p ' показує десятий рядок у буфері (тобто, 10 – це адреса), а команда ' move 5 ' переміщає поточний рядок за рядок з номером 5 (тобто, 5 – це лічильник).

Деякі команди також використовують параметри, розміщені після імені команди. Ряд команд має варіанти. Інша форма команди викликається встановленням знаку оклику (!) безпосередньо за ім'ям команди.

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

Команди запису

Команди запису дозволяють вам переписувати весь ваш буфер редагування або його частину в поточний або будь-який інший файл.



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 308; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.221.81.212 (0.03 с.)