Посібник Emacs. Умови копіювання в кінці. Команди Emacs передбачають використання клавіші CONTROL (часто підписаної CTRL чи CTL) або клавіші META (зазвичай підписаної ALT). Щоб не писати цього щоразу повністю, використовуємо такі скорочення: C-<симв> означає затиснути клавішу CONTROL і натиснути клавішу <симв>. Тобто C-f — це затиснути CONTROL і натиснути f. M-<симв> означає затиснути клавішу META чи ALT і натиснути <симв>. Якщо не маєте клавіші META чи ALT, натисніть по черзі клавіші ESC та <симв>. Клавішу ESC ми позначаємо . Українську розкладку налаштуємо в розділі «Встановлення пакунків». Тим часом для перших кроків, будь ласка, перемкніться на латинську розкладку: скажімо, на чеську, суахілі чи англійську. Зауважте: щоб завершити сеанс Emacs, наберіть C-x C-c. (Два символи.) Щоб скасувати частково введену команду, наберіть C-g. Щоб закрити посібник, наберіть C-x k, а тоді при запиті натисніть (цю клавішу може бути підписано Enter). Абзаци, що містять „»»“ на початку, — це вказівки, які вам слід виконати, щоб спробувати використати ту чи іншу команду. Наприклад: <<Програма help-with-tutorial огортає наступний рядок відступами>> [Кілька навмисне порожніх рядків. Скоро зрозумієте, навіщо.] »» Прямо зараз наберіть C-v (view — переглянути), щоб прогорнути посібник униз. (Затисніть клавішу CONTROL і наберіть v.) Робіть так щоразу, коли дочитуєте до кінця екрана. Як бачите, гортається не цілий екран, а на два рядки менше; це допомагає не губитись, коли читаєте довгі тексти. Це одноразова, трошки адаптована спеціально для вас копія тексту посібника Emacs. Будемо пропонувати вам випробовувати прямо на цьому тексті різні команди, які його змінюватимуть. Якщо зміните цей текст самостійно навіть без наших вказівок — чудово, це називається «редагування» й саме для цього створено Emacs. Перш за все навчимось пересуватися текстом. Ви вже знаєте, як прогорнути один екран уперед: C-v. Прогорнути один екран назад — це M-v (затисніть клавішу META й наберіть v — або наберіть v, якщо не маєте ні клавіші META, ні клавіші ALT). »» Спробуйте набрати M-v й тоді C-v кілька разів по черзі. Якщо знаєте інші способи гортати текст, то можете, звісно, застосовувати і їх. * ПІДСУМОК ---------- Наступні команди допомагають гортати екрани тексту: C-v (View — переглянути.) Перейти на наступний екран. M-v Перейти на попередній екран. C-l (Clear — очистити.) Очистити екран і вивести текст заново, центруючи екран на тексті біля курсора. (Це CONTROL-L, не CONTROL-1.) »» Знайдіть курсор і зверніть увагу, який біля нього текст. Наберіть C-l. Знайдіть, куди змістився курсор, і зауважте, що біля курсора досі той самий текст, просто він тепер у центрі екрана. Якщо знов натиснете C-l, цей самий текст посунеться догори екрана. Натисніть C-l іще раз, і він посунеться донизу. Можете також гортати екрани клавішами PageUp і PageDn, якщо ваш термінал їх має. Але з C-v та M-v ви редагуватимете спритніше. * ОСНОВИ КЕРУВАННЯ КУРСОРОМ --------------------------- Гортати екран за екраном — це вже непогано, але як перейти до конкретного місця в тексті на екрані? Є кілька способів. Можна рухатись клавішами стрілок, але зручніше тримати руки в стандартному положенні й використовувати команди C-p (previous — попередній), C-b (backward — назад), C-f (forward — уперед) і C-n (next — наступний). Ці символи рівнозначні чотирьом клавішам стрілок: Попередній рядок, C-p : : Назад, C-b .... Де курсор зараз .... Уперед, C-f : : Наступний рядок, C-n »» Посуньте курсор до рядка посередині рисунка вгорі за допомогою C-n та C-p. Тоді наберіть C-l, щоб центрувати екран на рисунку. Літери в скороченнях Emacs легко запам'ятати за відповідними їм англійськими словами, як зазначено вгорі. Ці основні команди руху курсора ви будете використовувати весь час. »» Наберіть C-n кілька разів, щоб посунути курсор до цього рядка. »» Посуньте курсор до якого-небудь слова в рядку, набравши C-f декілька разів, а тоді поверніться вгору кількома натисками C-p. Зауважте, як C-p поводиться, коли курсор не на початку рядка. Кожен рядок тексту закінчується символом нового рядка: цей символ технічно відділяє рядок від наступного. (Зазвичай останній рядок у файлі теж закінчується символом нового рядка, проте Emacs цього не вимагає.) »» Спробуйте C-b на початку рядка. Курсор має зміститись у кінець попереднього рядка, бо рух назад (backward) «проїде» по символу нового рядка. C-f — рух уперед (forward) — уміє «їздити» по символах нового рядка так само, як і C-b. »» Наберіть C-b іще кілька разів, щоб відчути, яким чином рухається курсор. Тоді поверніться в кінець того рядка, з якого почали рух: кілька разів наберіть C-f. Тоді перейдіть іще одним C-f до наступного рядка. Коли ваш рух перетинає верх чи низ екрана, текст із-за краю посувається на екран. Це називається «гортання», або scrolling. Таким чином курсор, куди б у тексті ви його не спрямували, залишається в межах екрана Emacs. »» Спробуйте посунути курсор за нижню межу екрана кількома натисками C-n — і зверніть увагу на поведінку. Коли рухатися символами надто повільно, рухайтеся словами. M-f (META-f) посуває курсор через ціле слово вперед (forward), а M-b — через слово назад (backward). »» Наберіть M-f і M-b по кілька разів. Коли ви посеред слова, M-f посуває курсор до кінця слова. Коли ви на пробілі, M-f посуває курсор у кінець наступного слова. M-b працює аналогічно в зворотному напрямі. »» Наберіть іще кілька M-f і M-b, розділяючи їх натисками C-f і C-b, щоб поспостерігати за поведінкою M-f і M-b залежно від перебування курсора в різних місцях усередині слів і між словами. Простежте паралелі між C-f і C-b з одного боку та M-f і M-b з іншого. Часто Meta-символи використовуються для роботи з одиницями, визначеними мовою: зі словами, реченнями, абзацами. Тоді як Control-символи працюють із низькорівневими одиницями, без огляду на редаговане середовище: з символами, рядками тощо. Ця паралель стосується також рядків і речень: C-a та C-e посувають до початку чи кінця рядка, тоді як M-a та M-e посувають до початку чи кінця речення. »» Наберіть C-a кілька разів, тоді наберіть C-e кілька разів. Наберіть M-a кілька разів, тоді наберіть M-e кілька разів. Зверніть увагу на те, як повторні натиски C-a не викликають нових рухів, а от повтори M-a щоразу рухають вас на одне речення назад. Поведінка дещо різна, втім природна для кожного контексту. Координати курсора в тексті називаються «точкою». Іншими словами, курсор позначає на екрані поточну точку в тексті. Ось підсумок простих операцій посування курсора, зокрема команд руху словами й реченнями: C-f (Forward — уперед.) Перейти на символ уперед C-b (Backward — назад.) Перейти на символ назад M-f Перейти на слово вперед M-b Перейти на слово назад C-n (Next — наступний.) До наступного рядка C-p (Previous — попередній.) До попереднього рядка C-a (Alpha — початок.) Перейти на початок рядка C-e (End — кінець.) Перейти в кінець рядка M-a Перейти назад на початок речення M-e Перейти вперед у кінець речення »» Випробуйте всі ці команди по кілька разів для практики. Ними ви користуватиметесь частіше за всі інші. Дві інші важливі команди руху курсора — це M-< (META-менше), яка веде на початок усього тексту, й M-> (META-більше), яка веде в кінець усього тексту. На більшості терміналів знак „<“ — над латинською комою, тобто ви затискаєте SHIFT, щоб його набрати. Відповідно M-< означає затиск не лише клавіші META, а ще й клавіші SHIFT. Без SHIFT вийде M-кома. »» Спробуйте М-< зараз, щоб перейти на початок посібника. Тоді кілька разів наберіть C-v, щоб повернутись сюди. »» Спробуйте М-> зараз, щоб перейти в кінець посібника. Тоді кілька разів наберіть M-v, щоб повернутись сюди. Можете також рухати курсор клавішами стрілок, якщо ваш термінал має такі клавіші. Втім, радимо опанувати C-b, C-f, C-n і C-p з трьох причин. По-перше, вони працюють на будь-яких терміналах. По-друге, практикуючи використання Emacs, ви невдовзі виявите, що набирати ці Control-символи швидше, ніж набирати стрілки (бо вам не доводиться зсувати руки з набірного положення). По-третє, щойно ви звикнете до використання цих команд із Control-символами, вам стане легко опанувати й інші розширені команди посування курсора. Більшість команд Emacs приймають числовий аргумент; для більшості команд він означає кількість повторів. Щоб передати команді кількість повторів, набирайте C-u і цифри, перш ніж набрати команду. Якщо маєте клавішу META (чи ALT), то маєте й інший, альтернативний шлях увести числовий аргумент: наберіть цифри, затиснувши клавішу META. Радимо опанувати шлях C-u, бо він працює на будь-яких терміналах. Числовий аргумент також називається «префіксним аргументом», бо ви набираєте його перед відповідною йому командою. Наприклад, C-u 8 C-f посуває курсор на вісім символів уперед. »» Спробуйте використати C-n чи C-p з числовим аргументом, щоб посунути курсор до рядка поруч із цим рядком єдиною командою. Числовий аргумент означає для більшості команд кількість повторів, але деякі команди використовують його інакше. Декілька команд (але не ті, які вам уже відомі) використовують його як прапор: коли передаєте їм префіксний аргумент, це незалежно від значення змушує команду робити щось нетипове. C-v та M-v також є винятком. За наявності аргументу вони гортають текст угору чи вниз на означену ним кількість рядків, а не на цілий екран. Наприклад, C-u 8 C-v прокручує 8 рядків. »» Спробуйте набрати C-u 8 C-v прямо зараз. Це мало прогорнути текст на 8 рядків угору. Якщо бажаєте прогорнути його знов донизу, передайте аргумент команді M-v. Якщо ви користуєтесь графічним середовищем, наприклад X чи MS-Windows, то з одного боку вікна Emacs має бути висока прямокутна область, яка називається панеллю гортання. Можете гортати текст, натискаючи панель гортання кнопкою миші. Якщо у вашої миші є колесо гортання, можете гортати й ним. * ЯКЩО EMACS НЕ ВІДПОВІДАЄ -------------------------- Якщо Emacs перестає відповідати на ваші команди, можете дати йому копняка, набравши C-g. Використовуйте C-g, щоб припинити команду, яка виконується надто довго. Також використовуйте C-g, щоб відхилити числовий аргумент або початок команди, яку передумали дописувати. »» Наберіть C-u 100, щоб зазначити числовий аргумент «100». Наберіть C-g. Тепер наберіть C-f. Курсор має посунутись лише на один символ, бо ви скасували аргумент набранням C-g. Ненароком набравши , можете позбутись і його за допомогою C-g. * ВИМКНЕНІ КОМАНДИ ------------------ Деякі команди Emacs усталено «вимкнені», щоб не плутати користувачок і користувачів, які лише починають його вивчати. Коли ви набираєте ту чи іншу вимкнену команду, Emacs показує її назву й запитує, чи точно ви бажаєте виконати цю команду. Якщо ви справді бажаєте спробувати команду, наберіть (пробіл) у відповідь на запитання. Зазвичай, не бажаючи виконувати вимкнену команду, відповідайте на це питання «n». »» Наберіть C-x C-l (цю команду вимкнено), а тоді наберіть n у відповідь на запитання. * WINDOWS --------- Emacs може мати кілька «вікон» — кожне зі своїм текстом. Згодом пояснимо, як використовувати декілька вікон одразу. Поки що слід розібратись, як позбутись зайвих вікон і повернутись до простого редагування в одному вікні. Це просто: C-x 1 Одне вікно (тобто припинити всі інші вікна). Це означає набір CONTROL-x і цифри 1. C-x 1 розширює вікно, яке містить курсор, на весь екран, і видаляє всі інші вікна. »» Посуньте курсор до цього рядка й наберіть C-u 0 C-l. Тоді наберіть C-h k C-f. Це вікно звузиться, й з'явиться нове вікно, в якому буде показано документацію про команду C-f. »» Наберіть C-x 1 — вікно документації зникне. Є цілі набори команд, які починаються з CONTROL-x; більшість із них стосуються вікон, файлів, буферів тощо. Ці команди містять два, три або чотири символи. * ВВЕДЕННЯ Й ВИДАЛЕННЯ ---------------------- Якщо бажаєте ввести текст, просто наберіть цей текст. Звичайні символи, такі як A, 7, * тощо, вводяться прямо при набранні. Аби ввести символ нового рядка, натисніть (ця клавіша на клавіатурі часом підписана «Enter»). Щоб видалити символ перед курсором, наберіть . Ця клавіша на клавіатурі зазвичай підписана «Backspace» — та сама, якою за межами Emacs ви зазвичай видаляєте останній набраний символ. На клавіатурі зазвичай є ще одна клавіша з підписом , але в Emacs ми позначаємо не її. »» Прямо зараз наберіть кілька символів, а тоді видаліть їх, набравши кілька разів. Сміливо змінюйте цей файл; оригінал посібника залишиться недоторканим. Це ваша особиста одноразова копія. Коли рядок тексту завеликий для одного рядка на екрані, цей рядок тексту «продовжується» на ще один екранний рядок. Якщо ви користуєтесь графічним середовищем, на кожному боці текстової області (на лівому й правому «полях») з'являються маленькі вигнуті стрілки — позначки, де було продовжено той чи інший рядок. Якщо ви користуєтесь текстовим терміналом, продовжений рядок позначається оберненою скісною рискою («\») в крайній правій колонці екрана. »» Вводьте текст, доки не сягнете правого поля, а тоді вводьте ще. Побачите, як з'явиться рядок продовження. »» Натискайте раз за разом, щоб видаляти символи, доки рядок тексту не вміститься знову в один екранний рядок. Рядок продовження зникне. Символ нового рядка можете видалити так само, як будь-який інший. Видалення символу нового рядка між двома рядками зливає їх в один рядок. Якщо в результаті сполучений рядок ширший, ніж екран, то його буде показано з рядком продовження. »» Посуньте курсор на початок рядка й наберіть . Це зіллє той рядок із попереднім. »» Наберіть , щоб відновити символ нового рядка на місці щойно видаленого. Клавіша особлива тим, що її натиск може не лише вводити символ нового рядка. Залежно від навколишнього тексту, її натиск може ввести пробіли після символу нового рядка таким чином, щоб текст у новоствореному рядку одразу вирівнювався відносно тексту попереднього рядка. Ми називаємо цю поведінку (складнішу дію клавіші, ніж просто введення відповідного символу) «електричною». »» Щоб побачити електричну поведінку , наберіть у кінці цього рядка. Простежте, як при введенні символу нового рядка Emacs вводить пробіли таким чином, що курсор опиняється під «н» слова «наберіть». Пам'ятайте, більшості команд Emacs можливо передати кількість повторень; це стосується й текстових символів. Повторення текстового символу вводить цей символ декілька разів. »» Спробуйте зараз набрати C-u 8 *, аби ввести ********. Ви опанували основний спосіб набрати щось в Emacs і виправити помилки. Також можна видаляти цілі слова й рядки. Ось підсумок операцій видалення: Видалити символ перед курсором C-d (Delete — видалити.) Видалити символ після курсора M- Вирізати слово перед курсором M-d Вирізати слово після курсора C-k (Kill — вирізати.) Вирізати з рядка все після курсора M-k Вирізати з речення все після курсора Зважте на те, як і C-d продовжують щодо M- і M-d паралелі, розпочаті C-f і M-f (технічно не є керівним символом, але зараз це несуттєво). C-k та M-k подібні до C-e та M-e тим, як вони працюють із рядками й реченнями відповідно. Є також спосіб вирізати одразу багато тексту. Перейдіть на початок чи в кінець потрібної частини тексту й натисніть C-. ( — пробіл.) Тоді посуньте курсор на інший край частини тексту, яку бажаєте вирізати. Коли ви це робитимете, Emacs підсвітить текст між курсором і тим місцем, де ви набрали C-. Нарешті наберіть C-w (whole — повністю). Це повністю виріже позначений текст. »» Посуньте курсор до «Є» на початку попереднього абзацу. »» Введіть C-. Emacs має показати повідомлення «Mark set» («Позначку встановлено») внизу екрана. »» Посуньте курсор до «п» в слові «потрібної» другого рядка абзацу. »» Наберіть C-w. Це виріже текст від «Є» включно до «п» не включно. Якби ви набрали M-w, це його лише скопіювало б. Вирізання й видалення відрізняються тим, що вирізаний текст можливо вставити (будь-куди), тоді як видалене вставити неможливо (втім, можливо скасувати видалення — про це згодом). Вставка, так би мовити, виймає (yank) раніше вилучений текст. Зазвичай усі команди, які вилучають багато тексту, вирізають його (їх налаштовано таким чином, щоб ви могли потім вставити цей текст); а от команди, які вилучають лише один символ або порожні рядки чи пробіли, просто їх видаляють (без можливості вставлення). і C-d без аргументу здійснюють видалення. За наявності аргументу вони вирізають. »» Посуньте курсор на початок рядка, в якому є символи. Тоді наберіть C-k, щоб вирізати текст у цьому рядку. »» Наберіть C-k іще раз. Це виріже той символ нового рядка, що завершує цей рядок. Зауважте, перший C-k вирізає вміст рядка, а другий C-k вирізає сам рядок і зсуває догори всі наступні рядки. C-k із числовим аргументом працює інакше: вирізає водночас вміст і самі рядки. Це не просто повторення. C-u 2 C-k вирізає два рядки разом із їхніми символами нового рядка; набравши C-k двічі, ви отримаєте інший результат. Можете вставити вирізаний текст туди ж, звідки його вирізали, або до певного іншого місця в редагованому тексті — навіть в інший файл. Можете вставляти один і той самий текст кілька разів; це створить кілька його копій. Англійською вирізання називають «kill» або «cut», виймання (вставку) — «yank» або «paste»; перегляньте згодом глосарій у підручнику Emacs. Команда C-y вставляє останній вирізаний текст туди, де зараз курсор. »» Спробуйте набрати C-y, щоб вставити текст назад. Якщо наберете C-k декілька разів поспіль, увесь вирізаний текст збережеться разом, щоб одною командою C-y ви могли вставити водночас усі рядки. »» Спробуйте зараз набрати C-k декілька разів. Тепер отримаймо вирізаний текст: »» Наберіть C-y. Посуньте курсор на кілька рядків униз і наберіть C-y знову. Тепер ви знаєте, як копіювати текст. Що робити, коли вже вирізали певний текст для вставки, але після цього вирізали ще щось? C-y вставляє найновіше вирізане. Проте минулого вирізаного не втрачено. Можете повернутись до нього командою M-y. Набравши C-y та вийнявши цим найновіше вирізане, наберіть M-y іще раз, щоб замінити вставлений текст на попереднє вирізане. Набирайте M-y знову й знову, щоб виймати минулі вирізання. Досягнувши шуканого тексту, ви не маєте більше нічого робити, щоб його зафіксувати. Просто продовжуйте редагувати, залишивши вставлений текст на місці. Набравши M-y достатньо разів, виймете найновіше вирізане знову. »» Виріжте рядок, посуньте курсор і виріжте ще один рядок. »» Тоді наберіть C-y, щоб отримати другий вирізаний рядок. Тоді наберіть M-y, і той рядок заміниться на перший вирізаний рядок. »» Наберіть M-y іще кілька разів і простежте, що вийматиметься. Продовжуйте набирати M-y, доки не виймете знову другий вирізаний рядок, і тоді наберіть ще декілька M-y. За бажання спробуйте передати M-y додатні чи від'ємні аргументи. * СКАСУВАННЯ ------------ Помилково змінивши текст, можете скасувати цю зміну командою скасування C-_, тобто затисніть Control та Shift і натисніть дефіс. Зазвичай C-_ скасовує зміни, внесені одною командою; якщо ви наберете кілька C-_ поспіль, кожне повторення скасує ще по одній команді. Але є два винятки. Команди, які не змінюють тексту, не враховуються (зокрема це команди руху курсора й команди гортання). Й текстові символи зазвичай обробляються по 20 водночас. (Це щоб зменшити кількість C-_, потрібних для скасування вставки тексту.) »» Виріжте цей рядок за допомогою C-k. Тоді наберіть C-_, щоб він з'явився знову. C-/ — альтернативна команда скасування; вона працює так само, як C-_. Деякі термінали дають змогу набирати C-_ без клавіші Shift. Деякі термінали насправді передають Emacs саме C-_, коли ви набираєте C-/. Ще є команда C-x u, котра працює так само, як C-_, але менш зручна для набрання. Посібники для латинських розкладок описують команду C-/ як основну, проте українською C-_ набирати легше. Числовий аргумент для C-_, C-/ чи C-x u працює як кількість повторень. Можете скасувати видалення тексту так само, як скасовуєте вирізання. Відмінність між вирізанням і видаленням полягає в тому, чи можете ви вставити текст за допомогою C-y; для скасування нема жодної різниці. * ФАЙЛИ ------- Щоб зробити зміни до тексту постійними, їх треба зберегти до файлу. Інакше ці зміни зникнуть при виході з Emacs. Аби зберегти текст до файлу, вам потрібно «знайти» файл, перш ніж ввести текст. (Це також називають «відкриттям» файлу.) Знаходження файлу показує його вміст усередині Emacs. Це виглядає, ніби ви редагуєте файл безпосередньо. Проте зміни, які ви вносите за допомогою Emacs, не стають постійними, доки ви не «збережете» файл. Це щоб не залишати лише частково зміненого файлу в системі, коли ви цього не бажаєте. Навіть після збереження Emacs залишає початковий файл під іншою назвою, щоб ви змогли згодом скасувати зміни, якщо вони виявляться помилковими. Якщо ви роздивитесь низ екрану, то помітите рядок, який містить дефіси й починається з чогось на кшталт « -:--- TUTORIAL». Ця частина екрану зазвичай показує назву файлу, який ви редагуєте. Зараз ви переглядаєте свою особисту копію посібника Emacs, названу «TUTORIAL». Коли ви знаходите файл за допомогою Emacs, назва цього файлу показується саме в тому місці. Команда знаходження файлу особлива тим, що запитує вас, який файл вам треба. Іншими словами, команда «зчитує аргумент» (у цьому випадку аргумент — назва файлу). Після набрання команди: C-x C-f (Find — знайти.) Знайти файл Emacs попрохає вас набрати назву файлу. При введенні назву файлу показано в нижньому рядку екрана. Нижній рядок називають мінібуфером, коли він використовується для таких запитів. Можете використовувати звичні команди редагування Emacs, щоб редагувати назву файлу. Коли ви вводите назву файлу (чи заповнюєте інший мінібуфер), можете скасувати команду за допомогою C-g. »» Наберіть C-x C-f, а тоді наберіть C-g. Це скасує мінібуфер, а також команду C-x C-f, яка використовувала мінібуфер. Тому ви не знайдете жодного файлу. Коли ви введете назву файлу до кінця, наберіть , щоб завершити введення. Мінібуфер зникне, й команда C-x C-f спробує знайти обраний вами файл. Вміст файлу з'явиться на екрані, й ви зможете редагувати цей вміст. Коли вирішите зберегти зміни на постійно, наберіть команду: C-x C-s (Save — зберегти.) Зберегти Це скопіює текст із Emacs до файлу. Коли ви робите це вперше, Emacs перейменовує початковий файл, щоб його не було втрачено. Нова назва формується доданням «~» у кінець назви початкового файлу. Завершивши збереження, Emacs показує назву записаного файлу. »» Наберіть C-x C-s TUTORIAL . Це має зберегти посібник у файл із назвою «TUTORIAL» і показати «Wrote ...TUTORIAL» унизу екрана. Можете знайти вже наявний файл, щоб переглянути чи відредагувати його. Або можете «знайти» файл, якого ще не існує. Так в Emacs створюють файли: відкривають порожній файл і починають вводити текст у цей файл. Коли ви попросите «зберегти» файл, Emacs насправді створить файл зі введеним вами текстом. Відтоді можете вважати, що редагуєте вже наявний файл. * БУФЕРИ -------- Коли знаходите ще один файл за допомогою C-x C-f, перший файл залишається в Emacs. Можете перемкнутись на нього, знайшовши його знову за допомогою C-x C-f. Таким чином в Emacs можливо відкрити чимало файлів. Emacs зберігає текст кожного файлу всередині об'єкта — так званого «буфера». Знаходження файлу створює буфер усередині Emacs. Щоб переглянути перелік уже наявних буферів, наберіть C-x C-b (Buffer — буфер.) Перелічити буфери »» Спробуйте C-x C-b прямо зараз. Зауважте, що кожен буфер має власну назву, а ще біля нього може бути назва того файлу, вміст якого він утримує. Будь-який текст, який ви бачите у вікні Emacs, завжди є частиною певного буфера. »» Наберіть C-x 1, щоб позбутись переліку буферів. Коли буферів декілька, лише один із них може бути «поточним». Це той буфер, який ви редагуєте. Якщо бажаєте редагувати інший буфер, на нього слід «перемкнутись». Якщо бажаєте перемкнутись на буфер, що відповідає певному файлу, відкрийте файл знову за допомогою C-x C-f. Але простіше використати команду C-x b. Цій команді достатньо передати назву буфера. »» Відкрийте файл «foo», набравши C-x C-f foo . Тоді наберіть C-x b TUTORIAL , щоб повернутись до цього посібника. Зазвичай назва буфера збігається з назвою файлу (без шляху). Втім, це не завжди так. Перелік буферів, відкритий за допомогою C-x C-b, показує як назву буфера, так і назву файлу кожного буфера. Деякі буфери не відповідають файлам. Буфер *Buffer List* («Перелік буферів»), який показує створені за допомогою C-x C-b буфери, не має жодного файлу. Цей буфер TUTORIAL спершу не мав файлу, але тепер має, бо в попередньому розділі ви набрали C-x C-s і зберегли його до файлу. Буфер *Messages* також не відповідає жодному файлу. Цей буфер містить повідомлення, які з'являлись у нижньому рядку вашого сеансу Emacs. »» Наберіть C-x b *Messages* , щоб переглянути буфер повідомлень. Тоді наберіть C-x b TUTORIAL , щоб повернутись до цього посібника. Якщо змінити текст одного файлу й знайти інший файл, то перший файл не буде збережено. Зміни залишаться всередині Emacs у буфері цього файлу. Створення чи редагування буфера другого файлу не впливає на буфер першого файлу. Це дуже корисно, але буфер першого файлу теж треба якось зберігати. Перемикатись на цей буфер, щоб зберегти його за допомогою C-x C-s, було б незручно. Тож маємо C-x s (Save — зберегти.) Зберегти певні буфери до їхніх файлів C-x s запитує вас про кожен буфер, який ви змінили й не зберегли, чи бажаєте ви його зберегти. »» Введіть рядок тексту й наберіть C-x s. Маєте отримати запитання, чи бажаєте ви зберегти буфер TUTORIAL. Погодьтесь, набравши у відповідь «y». * РОЗШИРЕННЯ НАБОРУ КОМАНД -------------------------- Команд Emacs значно більше, ніж можливо розкласти по всіх Control- і Meta-символах. Emacs обходить це за допомогою команди x (extend — розширити). Вона має два різновиди: C-x Запитує один символ. M-x Запитує англійську назву команди. Ці команди дуже корисні, проте використовуються менш часто, ніж ті команди, які ви вже опанували. Деякі з цих команд ви вже бачили, наприклад файлові команди C-x C-f для знаходження й C-x C-s для збереження. Ще один приклад — команда завершення сеансу Emacs: C-x C-c пропонує зберегти кожен змінений файл, перш ніж зупинити Emacs. Якщо ви користуєтесь графічним середовищем, вам не потрібні жодні додаткові команди для переходу від Emacs до іншого застосунку. Можете переходити мишею чи командами менеджера вікон. Але якщо ви користуєтесь текстовим терміналом, який може показувати лише один повноекранний застосунок, то вам потрібно «призупинити» Emacs, щоб перейти до іншого застосунку. Команда C-z виходить з Emacs *тимчасово* — тобто ви можете повернутись до цього ж сеансу Emacs згодом. Коли Emacs запущено в текстовому терміналі, C-z «призупиняє» Emacs, тобто повертає вас до оболонки, але не припиняє завдання Emacs. У найпоширеніших оболонках ви можете відновити Emacs командою «fg» або «%emacs». Використовувати C-x C-c слід перед виходом із системи. Ще цією командою слід закривати той Emacs, який ви запустили для швидкого редагування, наприклад за допомогою знаряддя обробки пошти. Команд C-x чимало. Ось перелік тих, які ви вже опанували: C-x C-f (Find — знайти.) Знайти файл. C-x C-s (Save — зберегти.) Зберегти буфер до файлу. C-x s Зберегти певні буфери до їхніх файлів. C-x C-b (Buffer — буфер.) Перелічити буфери. C-x b Перемкнути буфер. C-x C-c (Close — закрити.) Вийти з Emacs. C-x 1 Видалити всі вікна, крім одного. C-x u (Undo — скасувати.) Скасувати останню дію. Розширені команди, які використовуються менш часто чи лише в певних режимах, мають довші англійські назви. Наприклад, команда replace-string («замінити рядок») змінює в буфері один рядок на інший. Коли ви набираєте M-x, Emacs показує внизу екрана запит M-x, у відповідь на який вам слід набрати назву команди — «replace-string» у цьому випадку. Просто наберіть «repl s» — і Emacs допише назву команди. ( — це клавіша Tab, яку зазвичай розміщено над клавішею Caps Lock чи Shfift ліворуч на клавіатурі.) Підтвердьте назву команди клавішею . Команда replace-string потребує двох аргументів: рядка, який слід замінити, й рядка, яким ви його замінюєте. Введення кожного аргументу потрібно завершити клавішею . »» Посуньте курсор до порожнього рядка двома рядки нижче, ніж цей. Тоді наберіть M-x repl sзміненоперетворено. Зверніть увагу на те, як зміниться цей рядок: ви заміните слово «змінено» на слово «перетворено» в усіх місцях після курсора, де воно зустрічається. * САМОЗБЕРЕЖЕННЯ ---------------- Коли ви змінюєте файл, але не зберігаєте змін, то ці зміни може бути втрачено, якщо комп'ютер зазнає збою. Emacs захищає вас від цього періодичним записом файлів «самозбереження» для кожного редагованого файлу. Назва файлу самозбереження починається й закінчується символом #, тобто якщо ваш файл називається «hello.c», його файл самозбереження називатиметься «#hello.c#». Коли ви зберігаєте файл звичним шляхом, Emacs видаляє відповідний файл самозбереження. Після збою комп'ютера ви можете відновити самозбережені правки, знайшовши файл як зазвичай (редагований файл, не файл самозбереження) й набравши M-x recover-this-file . (Команда перекладається як «відновити цей файл».) У відповідь на запит підтвердження, наберіть yes, щоб погодитись і відновити дані самозбереження. * ВІДЛУННЯ ---------- Коли Emacs помічає, що ви поволі набираєте багатосимвольну команду, він показує вам набрану частину команди внизу екрана в області, яку називають echo — відлунням. Ця область покриває нижній рядок екрана. * РЯДОК РЕЖИМУ -------------- Рядок прямо над областю відлуння називають «рядком режиму». В рядку режиму має виводитись щось таке: -:**- TUTORIAL 63% L749 (Fundamental) Цей рядок надає корисні дані про стан Emacs і редагованого тексту. Ви вже знаєте, що значить TUTORIAL: це назва того файлу, який ви знайшли раніше. ЧЧ% повідомляє, в якій частині буфера тексту ви перебуваєте; це означає, що ЧЧ відсотків буфера зараз над екраном. Якщо верх буфера видно на екрані, то замість «0%» буде «Top» — «Верх». Якщо низ буфера видно на екрані, то буде показано «Bot» — «Низ». Якщо ви читаєте такий маленький буфер, що весь його вміст видно на одному екрані, то в рядку режиму буде «All» — «Усе». Літера L (line — рядок) і цифри показують інший аспект вашого місцеперебування — номер рядка поточної точки. Зірки спереду вказують, що ви змінили текст. Коли файл тільки відкрито чи збережено, ця частина рядка режиму показує лише дефіси, без зірок. Частина рядка режиму всередині дужок вказує, які режими редагування наразі чинні. Типовий режим — це Fundamental («основний»); саме ним ви зараз користуєтесь. Це один із «вищих» режимів. Emacs має чимало різних вищих режимів. Деякі з них призначені для редагування різних мов і/або видів тексту, зокрема режим Lisp (для мови програмування Лісп), режим Text (для тексту) тощо. В певну мить активним може бути один і тільки один вищий режим, і його назву завжди можна знайти в рядку режиму — там, де зараз ви бачите Fundamental. Кожен вищий режим змінює поведінку декількох команд. Наприклад, є команди для створення коментарів у програмі, й оскільки кожна мова програмування по-своєму визначає вигляд коментарів, то й кожен вищий режим має вставляти коментарі по-своєму. Кожен вищий режим є назвою тої команди розширення, якою ви його вмикаєте. Наприклад, командою M-x fundamental-mode ви вмикаєте основний режим. Для редагування тексту мовами людського спілкування, такими як цей файл, ви зазвичай використовуватимете режим Text. »» Наберіть M-x text-mode . Не переймайтесь, жодні з уже відомих вам команд Emacs не стануть поводитись геть інакше. Проте ви можете помітити, що M-f і M-b тепер обробляють апострофи як частини слів. Досі, в режимі Fundamental, M-f і M-b обробляли апострофи як пунктуацію. Вищі режими зазвичай вносять саме такі невеличкі зміни: більшість команд продовжують виконувати звичні завдання — з деякими відмінностями в деталях. Щоб переглянути документацію про поточний вищий режим, наберіть C-h m. »» Посуньте курсор до рядка, наступного після цього. »» Наберіть C-l C-l, щоб посунути цей рядок угору екрана. »» Наберіть C-h m, щоб побачити різницю режимів Text і Fundamental. »» Наберіть C-x, щоб вилучити документацію з екрана. Вищі режими називаються вищими, тому що бувають і нижчі режими. Нижчі режими не заміщають вищих режимів, а трошки їх змінюють. Кожен нижчий режим можна ввімкнути чи вимкнути окремо, незалежно від усіх інших нижчих режимів — і незалежно від вашого вищого режиму. Тож ви можете не використовувати нижчих режимів зовсім, або використовувати єдиний нижчий режим, або поєднувати декілька нижчих режимів. Один із дуже корисних нижчих режимів, особливо для редагування тексту мовами людського спілкування, — це режим Auto Fill (самозаповнення). Коли цей режим увімкнено, Emacs автоматично вставляє символ нового рядка між словами, коли при введенні тексту певний рядок виявляється занадто широким. Режим самозаповнення вмикається командою M-x auto-fill-mode . Коли режим увімкнено, можете вимкнути його знову тою ж командою. Якщо режим вимкнено, команда його вмикає; а коли режим увімкнено, команда його вимикає. Можна сказати, що команда «перемикає режим». »» Наберіть M-x auto-fill-mode . Тоді набирайте «йцук » знов і знов, доки рядок не поділиться на два. Пробіли слід набирати, оскільки самозаповнення розбиває рядки тільки на пробілах. Поле зазвичай починається після 70 символів, але можете змінити це командою C-x f. Передайте бажане значення поля числовим аргументом цій команді. »» Наберіть C-x f із аргументом 20. (C-u 2 0 C-x f). Тоді наберіть будь-який текст і зверніть увагу, яким чином Emacs поділить його на 20-символьні рядки. Тоді поверніть полю значення 70 за допомогою ще одної команди C-x f. Якщо ви зміните щось посеред абзацу, режим самозаповнення не ділитиме абзацу на рядки заново без вашого дозволу. Щоб поділити абзац заново (замінюючи наявні символи нового рядка), посуньте курсор до цього абзацу й наберіть M-q (META-q). »» Посуньте курсор до попереднього абзацу й наберіть M-q. * ПОШУК ------- Emacs уміє шукати рядки (групи послідовних символів) в тексті як після курсора, так і перед ним. Пошук рядка є командою руху курсора, тобто посуває курсор до наступного місця, де з'являється цей рядок. Команда пошуку Emacs є покроковою. Тобто пошук відбувається прямо при набранні рядка, який ви бажаєте шукати. Пошук уперед розпочинає команда C-s (search — пошук), а пошук назад — команда C-r (reverse — навпаки). АЛЕ ЗАЧЕКАЙТЕ! Не поспішайте випробовувати ці команди. Набравши C-s, ви помітите, що область відлуння покаже рядок «I-search». Це означатиме, що Emacs перейшов до режиму incremental search — покрокового пошуку — й очікує, поки ви наберете, що бажаєте шукати. завершує пошук. »» Тепер наберіть C-s, щоб розпочати пошук. ПОВОЛІ, літера за літерою, наберіть слово «курсор», зупиняючись після кожного символу й звертаючи увагу на те, що відбувається з курсором. Отже, ви щойно пошукали «курсор» один раз. »» Наберіть C-s іще раз — знайдіть наступну послідовність «курсор». »» Тепер наберіть чотири рази й зауважте, куди зсунеться курсор. »» Наберіть , щоб завершити пошук. Щойно ви спостерігали, як покроковий пошук Emacs намагається перейти до послідовності, збіжної з набраним вами рядком. Щоб перейти до наступної послідовності «курсор», наберіть C-s іще раз. Якщо такої послідовності не існує, Emacs сигналить і повідомляє, що пошук наразі «failing» — неуспішний. C-g завершує пошук у будь-якому разі. Якщо під час покрокового пошуку набрати одразу після C-s — переходу до наступного збігу з шуканим рядком — то поверне курсор до попереднього збігу. Якщо збігів перед курсором нема, зітре останній символ рядка пошуку. Наприклад, наберіть «к», щоб пошукати перший збіг із «к». Тоді наберіть «у» — це посуне курсор до першого збігу з «ку». Нарешті наберіть — це зітре «у» з рядка пошуку, тож курсор повернеться до першого збігу з «к». Якщо посеред пошуку ви набираєте Control- чи Meta-символ (за винятком символів власне пошуку, як-от C-s чи C-r), пошук припиняється. C-s розпочинає пошук будь-якого збігу з шуканим рядком ПІСЛЯ того місця, де курсор зараз. Якщо бажаєте пошукати щось у більш ранньому тексті, наберіть натомість C-r. Усе, що ми зазначили про C-s, стосується й C-r, — крім напряму пошуку, який стає зворотним. * ДЕКІЛЬКА ВІКОН ---------------- Emacs має ту файну властивість, що ви можете переглядати водночас декілька вікон на одному екрані. (Зауважте, що Emacs використовує роз'яснений у наступному розділі термін «рамка», або frame, замість вжитого в деяких інших застосунках терміна «вікно».) Підручник Emacs містить глосарій термінів Emacs. »» Посуньте курсор до цього рядка й наберіть C-l C-l. »» Наберіть C-x 2 — розділіть екран на два вікна. Обидва вікна показуватимуть цей посібник. Курсор редагування залишатиметься в горішньому вікні. »» Наберіть C-M-v — перегорніть нижнє вікно. (Якщо не маєте клавіші META, наберіть »» Наберіть C-x o (other — інше), щоб посунути курсор до нижнього вікна. Погортайте нижнє вікно за допомогою C-v та M-v. Читайте ці вказівки далі в горішньому вікні. »» Наберіть C-x o ще раз, щоб посунути курсор назад до горішнього вікна. Курсор у горішньому вікні опиниться там же, де був досі. Можете й надалі перемикатись між вікнами за допомогою C-x o. «Обране» вікно, в якому переважно відбувається редагування, — це те вікно, в якому ви бачите помітний курсор, який блимає, коли ви нічого не набираєте. Кожне вікно має власну точку, на яку вказує його курсор; якщо ви запускаєте Emacs у графічному середовищі, ці курсори не блимають і мають вигляд порожніх коробок. Команда C-M-v дуже корисна, коли ви редагуєте текст в одному вікні й використовуєте інше вікно лише як довідку. Не виходячи з обраного вікна, ви можете гортати текст в іншому вікні за допомогою C-M-v. C-M-v — це один із CONTROL-META-символів. Якщо ви маєте клавішу META (чи Alt), то можете набрати C-M-v, затиснувши водночас клавіші CONTROL та META й натиснувши v. Неважливо, яку з клавіш CONTROL і META ви затиснете першою, бо ці клавіші не діють самостійно, а змінюють символи, які ви набираєте. Якщо у вас нема клавіші META, можете використати натомість , але тоді порядок таки важливий: наберіть спершу , а тоді CONTROL-v. CONTROL- v не спрацює, бо не змінює інші символи, а є повноцінною клавішею. »» Наберіть C-x 1 (у горішньому вікні), щоб позбутись нижнього вікна. (Якби ви набрали C-x 1 у нижньому вікні, то позбулися б горішнього вікна. Уявляйте цю команду як «Залишити лише одне вікно — те, в якому я зараз».) Показувати один і той самий буфер в обох вікнах необов'язково. Якщо в одному вікні ви наберете C-x C-f і знайдете файл, то на інше вікно це не вплине. Можете знаходити файли в обох вікнах незалежно. Ось ще один шлях застосування двох вікон для показу двох різних речей: »» Наберіть C-x 4 C-f та назву одного зі своїх файлів. Завершіть за допомогою . Зазначений файл з'явиться в нижньому вікні. Курсор також туди посунеться. »» Наберіть C-x o, щоб перейти до горішнього вікна, й C-x 1, щоб видалити нижнє вікно. * ДЕКІЛЬКА РАМОК ---------------- Emacs також дає змогу створити декілька «рамок» (frames). Рамкою називають будь-яку добірку вікон разом із її меню, панелями гортання, областю відлуння тощо. У графічних середовищах Emacs називає рамкою те, що багато інших застосунків називають «вікном». Екран може показувати декілька графічних рамок водночас. На текстовому терміналі може бути видно лише одну рамку. »» Наберіть C-x 5 2. На вашому екрані з'явиться нова рамка. У новій рамці ви можете робити все те, що й у початковій рамці. Початкова рамка не є чимось особливим. »» Наберіть C-x 5 0. Це вилучить обрану рамку. Вилучити рамку можна й тим звичним шляхом, який передбачає графічне середовище (зазвичай це кнопка «X» в одному з горішніх кутів рамки). Якщо вилучити таким чином останню рамку сеансу Emacs, увесь Emacs буде припинено. * РІВНІ РЕКУРСІЇ РЕДАГУВАННЯ ---------------------------- Інколи ви потраплятимете в так званий «рівень рекурсії редагування». Його позначають квадратні дужки в рядку режиму навколо круглих дужок назви вищого режиму. Наприклад, ви можете бачити [(Fundamental)] замість (Fundamental). Щоб вийти з рівня рекурсії редагування, наберіть . Це всеохопна команда виходу. Можете використовувати її й для закриття зайвих вікон чи виходу з мінібуфера. »» Наберіть M-x, щоб потрапити до мінібуфера. Тоді наберіть , щоб із нього вийти. Вийти з рівня рекурсії редагування за допомогою C-g неможливо, бо C-g використовується для скасування команд і аргументів УСЕРЕДИНІ рівня рекурсії редагування. * ОТРИМАТИ БІЛЬШЕ ДОВІДКИ ------------------------- Цей посібник намагається надати необхідний для початку роботи з Emacs мінімум даних. Emacs уміє стільки всього, що одним посібником описати всі його функції було б неможливо. Проте вам буде цікаво дізнатись більше про Emacs та його корисні функції. Emacs надає команди для читання документації про команди Emacs. Усі команди довідки (help) починаються з CONTROL-h — символу довідки. Для отримання довідки наберіть символ C-h, а тоді той символ, довідку якого бажаєте прочитати. Якщо ви СПРАВДІ загубились, C-h ? попрохає Emacs перелічити розділи довідки. Якщо ви набрали C-h і передумали читати довідку, натисніть C-g для скасування. (Якщо C-h не показує довідкового повідомлення внизу екрана, спробуйте набрати клавішу F1 чи M-x help натомість.) Основна функція довідки — це C-h c. Наберіть C-h, символ c, а також символ чи послідовність команди; тоді Emacs покаже коротенький англійський опис цієї команди. »» Наберіть C-h c C-p. Має з'явитись повідомлення на кшталт: C-p runs the command previous-line Тобто «C-p виконує команду previous-line (попередній рядок)». Це повідомляє вам назву функції. Оскільки назви функцій добираються таким чином, щоб зображати дії, виконувані відповідною командою, вони можуть слугувати коротенькою документацією — достатньою, щоб нагадати вам команди, які ви вже опанували. Багатосимвольні команди, такі як C-x C-s чи v (замість M-v, якщо не маєте клавіш META й ALT), також можна зазначати після C-h c. Щоб дізнатися більше про команду, зокрема про клавіші, які можна набирати після неї, використайте C-h k (keys — клавіші) замість C-h c (command — команда). »» Наберіть C-h k C-p. Це покаже у вікні Emacs документацію функції та її назву. Дочитавши показане, наберіть C-x 1, щоб позбутись того вікна. Робити це одразу необов'язково. Можете продовжити редагування, звіряючись із текстом довідки, й набрати C-x 1 лише згодом. Ось кілька інших корисних варіантів C-h: C-h x Описати команду. Вам буде треба набрати назву команди. »» Спробуйте набрати C-h x previous-line . Це покаже всі наявні в Emacs дані про ту функцію, яка втілює команду C-p. Схожа команда C-h v показує документацію змінних — зокрема тих, значення яких ви можете змінити для налаштування поведінки Emacs. Наберіть назву змінної, коли Emacs її у вас запитає. C-h a (Apropos — пов'язане.) Наберіть ключове слово — й Emacs покаже всі команди, назви яких містять це слово. Всі ці команди можна викликати за допомогою META-x. Для деяких команд Apropos наводить також символи чи послідовності, які виконують цю ж команду. »» Наберіть C-h a file . Це покаже в ще одному вікні перелік усіх команд M-x, назви яких містять «file» — файл. Поруч із назвами команд ви побачите відповідні їм символи (як-от C-x C-f поруч із find-file — знайти файл). »» Наберіть C-M-v, щоб прогорнути вікно довідки. Повторіть це декілька разів. »» Наберіть C-x 1, щоб видалити вікно довідки. C-h i (Info — дані.) Читати вкладені підручники. Ця команда веде вас до особливого буфера *info*, в якому ви можете читати підручники про встановлені у вашій системі пакунки. Наберіть m emacs , щоб почитати підручник Emacs. Якщо ви досі не користувались Info, наберіть h — і Emacs запустить для вас путівник можливостями режиму Info. Опрацювавши цей посібник, звертайтесь до Info-підручника Emacs як до основної документації. * БІЛЬШЕ ФУНКЦІЙ ---------------- Щоб дізнатись більше про Emacs, почитайте його підручник усередині Emacs, скориставшись меню Help (Довідка) чи набравши C-h r. Дві функції, які можуть вас особливо зацікавити, це Completion — доповнення, яке заощаджує натиски клавіш; і Dired — редагування каталогів, яке спрощує керування файлами. Доповнення дає змогу набирати менше тексту. Наприклад, щоб перемкнутись на буфер *Messages*, можете набрати C-x b *M* — і Emacs заповнить решту назви буфера настільки, наскільки зможе вивести з уже набраного вами тексту. Доповнення також працює з назвами команд і файлів. Підручник Emacs описує доповнення в розділі «Completion». Dired дає змогу перелічувати файли в каталозі (а на вимогу ще й у підкаталогах), рухатися цим переліком, відкривати, перейменовувати й видаляти файли тощо. Підручник Emacs описує керування файлами в розділі «Dired». Підручник також описує безліч інших функцій Emacs. * ВСТАНОВЛЕННЯ ПАКУНКІВ ----------------------- Спільнотою Emacs розроблено величезну добірку пакунків, які роблять Emacs потужнішим. Ці пакунки містять підтримку нових мов, теми оформлення, додатки для взаємодії з іншими застосунками — й ще багато-багато всього. Щоб переглянути перелік усіх доступних пакунків, наберіть M-x list-packages. З'явиться екран, за допомогою якого ви можете встановлювати й видаляти пакунки, а також читати описи пакунків. Докладніше про керування пакунками йдеться в підручнику Emacs. »» Перейдіть до цього рядка й наберіть C-l C-l. Тоді завантажте вебпереглядачем Emacs нижчий режим української розкладки: C-x 2 C-x o M-x eww https://melpa.org/packages/reverse-im-20220309.1919.el M-x package-refresh-contents M-x package-install-from-buffer q C-x o C-x 1 M-x reverse-im-add-input-method ukrainian-computer »» Emacs уміє викликати команди оболонки. Скористайтесь цим, щоб нижчий режим української розкладки автоматично вмикався при наступних запусках Emacs: M-x shell-command echo '(reverse-im-mode)' >>~/.emacs * ОТОЖ ------ Щоб вийти з Emacs, наберіть C-x C-c. Посібник має на меті бути зрозумілим усім новим користувачкам і користувачам, тож якщо будь-що роз'яснено нечітко чи помилково — скаржтесь! Український переклад: Денис Никула . * КОПІЮВАННЯ ------------ Цей посібник — нащадок цілого родоводу посібників Emacs, починаючи з первісного посібника Emacs, який написав Стюарт Кракрафт. Ця версія посібника — складник GNU Emacs. Її захищено авторським правом. Розповсюджувати копії дозволено за певних умов: Copyright (C) 1985, 1996, 1998, 2001-2022 Free Software Foundation, Inc. (Фонд вільного програмного забезпечення, Inc.) Цей файл — складник GNU Emacs. GNU Emacs — вільне програмне забезпечення: можете розповсюджувати й/або змінювати його згідно з умовами Загальної громадської ліцензії GNU в тому вигляді, в якому її публікує Фонд вільного програмного забезпечення, — версії 3 чи (на ваш розсуд) будь-якої новішої. GNU Emacs поширюється зі сподіванням, що він стане в нагоді, але БЕЗ ЖОДНИХ ГАРАНТІЙ; без навіть уявної гарантії КОМЕРЦІЙНОЇ ПРИДАТНОСТІ чи ВІДПОВІДНОСТІ БУДЬ-ЯКОМУ ПЕВНОМУ ЗАСТОСУВАННЮ. Докладніше про це йдеться в Загальній громадській ліцензії GNU. Ви мали отримати копію Загальної громадської ліцензії GNU разом із GNU Emacs. Якщо ні, перегляньте . Будь ласка, прочитайте файл COPYING і поширте після цього копії GNU Emacs вашим подругам і друзям. Зупинімо гальмування розвитку програмного забезпечення (так звану «власність» над ним), використовуючи, пишучи й поширюючи вільні програми!