МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Лабораторна робота №3
з дисципліни " Проектування операцiйних систем, утилiт i драйверiв "
Львів – 2015
Мета:
познайомитися з призначенням та командами текстового редактора ed;
познайомитися з використанням регулярних виразiв текстовим редактором ed;
навчитися редагувати текстовi файли з допомогою текстового редактора ed.
познайомитися з призначенням та основними можливостями текстового редактора vim;
познайомитися з принципами редагування, з основними командами, включаючи команди пошуку та замiни з використанням регулярних виразiв, редагуванням одночасно декiлькох файлiв, з режимом швидкого вiдлагодження в текстовому редакторi vim;
навчитися редагувати текстовi файли з допомогою текстового редактора vim.
Адресація в редакторі ed:
Щоб зрозуміти адресацію в ed, необхідно памятати, що в любий момент є поточний рядок. В загальному випадку, поточний рядок — це останній рядок, над який виконувалась команда; конкретний вплив на поточний рядок вказується в описі кожної команди. Адреси будуються наступним чином:
Символ . вказує на поточний рядок.
Символ $ вказує на останню стрічку в буфері.
Десяткове число n вказує на n-ний рядок в буфері.
'x вказує на стрічкуб позначену символом x, який може бути символом нижнього регістру. Рядки позначаються за допомогою команди k.
Регулярний вираз в косих рисках (/) вказує на перший рядок, знайдений при пошуку вперед від поточної позиції буфера. При необхідності, пошук триває з початку буфера включно до поточного рядка, так що проглядається весь буфер.
Регулярний вираз в знаках питання (?) Вказує на перший рядок, знайдений при пошуку назад від поточного буфера. При необхідності, пошук триває з кінця буфера включно до поточного рядка, так що проглядається весь буфер.
Адреса, за яким йде знак плюс (+) або знак мінус (-), за яким йде десяткове число, вказує на цю адресу плюс (відповідно, мінус) вказане число рядків. В якості скорочення для. + 5 можна використовувати .5.
Якщо адреса починається з + чи -, додавання або віднімання здійснюється по відношенню до даного рядку; наприклад,, -5 означает.-5.
Якщо адреса закінчується знаком + або -, то до адреси додається 1 або від адреси віднімається 1, відповідно. Внаслідок цього правила і Правила 8, адреса - вказує на рядок, що передує поточному. Більше того, хвостові символи + і - мають кумулятивний ефект, так що - вказує на поточний рядок мінус 2.
Для зручності, кома (,) відповідає парі адрес 1, $, а крапка з комою (;) - парі . , $.
У загальному випадку команди редактора ed складаються з імені команди, якому можуть передувати один або два номери рядків, і після якого для команд "e", "r" і "w" може вказуватися ім'я файлу. У рядку може бути присутнім тільки одна команда, однак команда "р" може слідувати після будь іншої команди, крім "e", "r", "w" і "q".а - Дописати рядки в буфер редактора після поточного рядка (якщо не заданий інший рядок). Дозапис продовжується до тих пір, поки не буде введена команда ". <CR>". Поточним стає останній дописаний рядок. У цій команді допускається адреса "0", при цьому текст поміщається в початок буфера.
c - Замінити зазначені рядки новим текстом, наступним після команди "c". Введення нових рядків завершується ". <CR>". Якщо номери рядків в команді не вказані, замінюється поточний рядок. Поточним стає остання замінений рядок або рядок, попередній видаленим рядкам.d - Видалити зазначені рядки. Якщо номери рядків не задані, віддаляється поточний рядок. Поточної стає першим не видалений рядок, крім випадку, коли видаляється останній рядок буфера. е - Редагування нового файлу. Попередній вміст буфера втрачається, так що попередньо корисно ввести команду "w". Поточним стає останній рядок буфера.E - Команда виконує ті ж дії, що і "е", за винятком того, що не видається повідомлення, якщо після останньої зміни буфера була видана команда записи "W".
f - Видати поточне ім'я файлу. Якщо після команди "F" вказується ім'я файлу, поточне ім'я файлу буде замінено цим іменем.
g - Конструкція "g / RE / команди" виконує зазначені "команди" над тими рядками, які відповідають зразком "повторно".
i - Вставити рядки перед зазначеним рядком. Вставка завершується командою ". <CR>".
j - Об'єднати зазначені рядки в один рядок. Якщо рядки не вказані, об'єднуються поточна і наступний за нею рядкок.
k - Відзначити рядок маркером, заданим після "к". В якості маркера використовуються рядкові латинські літери.
l - Роздрукувати рядка. Команда "l" еквівалентна команді "р", однак вона роздруковує графічно символи що не відображаються і "згортає довгі рядки".m - Помістити зазначені рядки після рядка, що задається після "м". Поточної стає останній переміщений рядок.p - Видати зазначені рядки. Якщо рядки не вказані, роздруковується поточний рядок. Окремий номер рядка еквівалентний команді "(номер_рядка) р". Просте натиснення клавіші <CR> роздруковує наступний рядок.q - Вихід з редактора. Якщо при цій операції втрачається інформація (наприклад, копія вихідного файлу змінювалося, але не була видана команда записи "W"), після першої команди "Q" видається підказка "?" і ніяких дій не проводиться. Видача поспіль двох команд "q" без попередньої команди "W" призводить до стирання буфера і закінченню роботи з редактором.Q -Прочитати файл в буфер (в кінець буфера, якщо не вказано по-іншому). Поточної стає останній рядок.
s - Команда s / XXX / YYY / підставляє замість символів "ххх" символи "ууу" в зазначених рядках. Якщо рядки не вказані, підстановка виконується в поточному рядку. Поточної стає останній рядок, в якій сталася підстановка, це призводить до збереження вихідного положення, якщо не була виконана жодна підстановка. Команда "s" замінює тільки перше входження "ххх" в рядку. Для заміни всіх входжень після завершальній дробової риси вказується символ "г".
t - Скопіювати зазначені рядки після рядка, що задається після "т". Поточної стає останній скопійований рядок.
u - Анулювати зміна, виконане попередньої командою.
v - Конструкція "v / RE / команди" виконує зазначені "команди" над тими рядками, які не відповідають зразку "Re".
w - Записати буфер у файл. Значення покажчика поточного рядка не змінюється.W - Аналогічна команді "W", за винятком того, що зазначені рядки дописуються до файлу.x - Робота в режимі шифрування. Запитується ключ, використовуючи який наступні команди "r", "e" і "w" будуть зашифровувати і розшифровувати текст. Порожній ключ скасовує режим шифраування.. = - Видати поточний номер рядка (один символ "=" друкує номер останнього рядка).! - Конструкція "! Командная_строка" викликає виконання "командної_стрічки" інтерпретатором команд.
/ RE / - Контекстний пошук. Пошук наступного рядка, який містить дану послідовність символів, і її видача. Поточної стає рядок, що відповідає заданим зразком "повторно". Пошук починається з рядка ". + 1" до "$", після останнього рядка переходить до рядка 1 і, при необхідності, триває до поточного рядка.
?Ре? - Контекстний пошук у зворотному напрямку. Пошук починається з рядка 1 і триває до останнього рядка.
. (точка) - Позначення поточного рядка.
$ - Позначення останнього рядка.
"х - Позначення рядки, раніше зазначеної маркером "х".
Текстовий редактор vim може працювати в таких режимах:
normal — режим вводу команд. У цьому режимі виконуються різнлманітні команди такі як читання, запис файлів, зміна параметрів редактора та інше.
Insert — режим редагування. У цьму режимі здійснюється вставка тексиу і безпосереднє редагування.
Visual — режим вижілення тексту. У цьому режимі можливо виділення тексту для наступних маніпуляцій, таких як видалення, переміщення, копіювання в один із регістрів зміни форматування та інше.
Основні команди редактора vim:
i - ввід тексту
a - вставка тексту після символу, підсвіченого курсором
o - вставка нового рядка після курсору з переходом в режим Insert
O - вставка нового рядка перед курсором з переходом в режим Insert
cc, S - очистка стрічки з переходом в режим Insert
C - видалення правої частини стрічки і перехід в режим Insert
s - видалення відсвіченого символу і перехід в режим Insert
v - режим виділення тексту, посимвольно
V - режим виділення тексту, порядково
gv - повернення до ділянки виділеної минулого разу
R - заміна виділеного тексту
...
Приклад використання текстового редактору ed.
Висновки
У ході виконання даної лабораторної роботи я ознайомився з призначенням та командами текстових редакторів ed, vim. Дізнався про використання регулярних виразів у них. Навчився редагувати текстові вайли за допомогою цих інструментів.